[INFO] cloning repository https://github.com/rforzani/l1-blockchain
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rforzani/l1-blockchain" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frforzani%2Fl1-blockchain", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frforzani%2Fl1-blockchain'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c4b8e027d3bce310b97425a89848bd08debf167e
[INFO] testing rforzani/l1-blockchain against master#d98a5da813da67eb189387b8ccfb73cf481275d8+rustflags=-Copt-level=3 for pr-138759-retry
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frforzani%2Fl1-blockchain" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/rforzani/l1-blockchain
[INFO] finished tweaking git repo https://github.com/rforzani/l1-blockchain
[INFO] tweaked toml for git repo https://github.com/rforzani/l1-blockchain written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rforzani/l1-blockchain on toolchain d98a5da813da67eb189387b8ccfb73cf481275d8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/rforzani/l1-blockchain 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" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ref-cast-impl v1.0.24
[INFO] [stderr]   Downloaded ref-cast v1.0.24
[INFO] [stderr]   Downloaded serde_with_macros v3.14.0
[INFO] [stderr]   Downloaded proc-macro2 v1.0.97
[INFO] [stderr]   Downloaded bitflags v2.9.2
[INFO] [stderr]   Downloaded axum-core v0.4.5
[INFO] [stderr]   Downloaded netlink-proto v0.11.5
[INFO] [stderr]   Downloaded hex_fmt v0.3.0
[INFO] [stderr]   Downloaded libp2p-mdns v0.45.1
[INFO] [stderr]   Downloaded resolv-conf v0.7.4
[INFO] [stderr]   Downloaded serde_path_to_error v0.1.17
[INFO] [stderr]   Downloaded libp2p-dns v0.41.1
[INFO] [stderr]   Downloaded nix v0.26.4
[INFO] [stderr]   Downloaded libp2p-swarm v0.44.2
[INFO] [stderr]   Downloaded quick-protobuf v0.8.1
[INFO] [stderr]   Downloaded rustls-webpki v0.103.4
[INFO] [stderr]   Downloaded blst v0.3.15
[INFO] [stderr]   Downloaded widestring v1.2.0
[INFO] [stderr]   Downloaded hyper-util v0.1.16
[INFO] [stderr]   Downloaded libp2p-gossipsub v0.46.1
[INFO] [stderr]   Downloaded axum v0.7.9
[INFO] [stderr]   Downloaded h2 v0.3.27
[INFO] [stderr]   Downloaded netlink-packet-route v0.17.1
[INFO] [stderr]   Downloaded libp2p-kad v0.45.3
[INFO] [stderr]   Downloaded x509-parser v0.16.0
[INFO] [stderr]   Downloaded rustix v1.0.8
[INFO] [stderr]   Downloaded chacha20poly1305 v0.10.1
[INFO] [stderr]   Downloaded snow v0.9.6
[INFO] [stderr]   Downloaded asn1-rs v0.6.2
[INFO] [stderr]   Downloaded multibase v0.9.1
[INFO] [stderr]   Downloaded multihash v0.19.3
[INFO] [stderr]   Downloaded unsigned-varint v0.8.0
[INFO] [stderr]   Downloaded rustls v0.23.31
[INFO] [stderr]   Downloaded multiaddr v0.18.2
[INFO] [stderr]   Downloaded libp2p v0.53.2
[INFO] [stderr]   Downloaded libp2p-allow-block-list v0.3.0
[INFO] [stderr]   Downloaded libp2p-connection-limits v0.3.1
[INFO] [stderr]   Downloaded ipconfig v0.3.2
[INFO] [stderr]   Downloaded futures-ticker v0.0.3
[INFO] [stderr]   Downloaded libp2p-identify v0.44.2
[INFO] [stderr]   Downloaded futures-bounded v0.2.4
[INFO] [stderr]   Downloaded prometheus-client-derive-encode v0.4.2
[INFO] [stderr]   Downloaded libp2p-metrics v0.14.1
[INFO] [stderr]   Downloaded asynchronous-codec v0.7.0
[INFO] [stderr]   Downloaded chacha20 v0.9.1
[INFO] [stderr]   Downloaded libp2p-noise v0.44.0
[INFO] [stderr]   Downloaded futures-rustls v0.26.0
[INFO] [stderr]   Downloaded der-parser v9.0.0
[INFO] [stderr]   Downloaded hickory-resolver v0.24.4
[INFO] [stderr]   Downloaded libp2p-quic v0.10.3
[INFO] [stderr]   Downloaded futures-lite v2.6.1
[INFO] [stderr]   Downloaded polling v3.10.0
[INFO] [stderr]   Downloaded async-io v2.5.0
[INFO] [stderr]   Downloaded anyhow v1.0.99
[INFO] [stderr]   Downloaded windows-core v0.53.0
[INFO] [stderr]   Downloaded yamux v0.13.6
[INFO] [stderr]   Downloaded rw-stream-sink v0.4.0
[INFO] [stderr]   Downloaded schnorrkel v0.11.5
[INFO] [stderr]   Downloaded enum-as-inner v0.6.1
[INFO] [stderr]   Downloaded x25519-dalek v2.0.1
[INFO] [stderr]   Downloaded quick-protobuf-codec v0.3.1
[INFO] [stderr]   Downloaded poly1305 v0.8.0
[INFO] [stderr]   Downloaded rcgen v0.11.3
[INFO] [stderr]   Downloaded regex v1.11.2
[INFO] [stderr]   Downloaded asn1-rs-derive v0.5.1
[INFO] [stderr]   Downloaded libp2p-ping v0.44.1
[INFO] [stderr]   Downloaded pem v3.0.5
[INFO] [stderr]   Downloaded libp2p-tls v0.4.1
[INFO] [stderr]   Downloaded async-lock v3.4.1
[INFO] [stderr]   Downloaded if-addrs v0.10.2
[INFO] [stderr]   Downloaded hickory-proto v0.24.4
[INFO] [stderr]   Downloaded netlink-sys v0.8.7
[INFO] [stderr]   Downloaded async-trait v0.1.89
[INFO] [stderr]   Downloaded attohttpc v0.24.1
[INFO] [stderr]   Downloaded libp2p-swarm-derive v0.34.2
[INFO] [stderr]   Downloaded unsigned-varint v0.7.2
[INFO] [stderr]   Downloaded multistream-select v0.13.0
[INFO] [stderr]   Downloaded void v1.0.2
[INFO] [stderr]   Downloaded libp2p-yamux v0.45.2
[INFO] [stderr]   Downloaded libp2p-identity v0.2.12
[INFO] [stderr]   Downloaded data-encoding v2.9.0
[INFO] [stderr]   Downloaded core2 v0.4.0
[INFO] [stderr]   Downloaded syn v2.0.105
[INFO] [stderr]   Downloaded prometheus-client v0.22.3
[INFO] [stderr]   Downloaded asn1-rs-impl v0.2.0
[INFO] [stderr]   Downloaded oid-registry v0.7.1
[INFO] [stderr]   Downloaded rusticata-macros v4.1.0
[INFO] [stderr]   Downloaded netlink-packet-utils v0.5.2
[INFO] [stderr]   Downloaded netlink-packet-core v0.7.0
[INFO] [stderr]   Downloaded rtnetlink v0.13.1
[INFO] [stderr]   Downloaded if-watch v3.2.1
[INFO] [stderr]   Downloaded libp2p-tcp v0.41.0
[INFO] [stderr]   Downloaded igd-next v0.14.3
[INFO] [stderr]   Downloaded libp2p-core v0.41.3
[INFO] [stderr]   Downloaded yamux v0.12.1
[INFO] [stderr]   Downloaded nohash-hasher v0.2.0
[INFO] [stderr]   Downloaded xml-rs v0.8.27
[INFO] [stderr]   Downloaded data-encoding-macro v0.1.18
[INFO] [stderr]   Downloaded getrandom_or_panic v0.0.3
[INFO] [stderr]   Downloaded serde_json v1.0.143
[INFO] [stderr]   Downloaded serde_with v3.14.0
[INFO] [stderr]   Downloaded glob v0.3.3
[INFO] [stderr]   Downloaded yasna v0.5.2
[INFO] [stderr]   Downloaded xmltree v0.10.3
[INFO] [stderr]   Downloaded libp2p-upnp v0.2.2
[INFO] [stderr]   Downloaded data-encoding-macro-internal v0.1.16
[INFO] [stderr]   Downloaded schemars v0.9.0
[INFO] [stderr]   Downloaded regex-automata v0.4.10
[INFO] [stderr]   Downloaded windows v0.53.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e9c58498d08eee27e986825fe6cac1d0eb50969cb3dbfe2a2a84ef5b3a40b911
[INFO] running `Command { std: "docker" "start" "-a" "e9c58498d08eee27e986825fe6cac1d0eb50969cb3dbfe2a2a84ef5b3a40b911", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e9c58498d08eee27e986825fe6cac1d0eb50969cb3dbfe2a2a84ef5b3a40b911", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e9c58498d08eee27e986825fe6cac1d0eb50969cb3dbfe2a2a84ef5b3a40b911", kill_on_drop: false }`
[INFO] [stdout] e9c58498d08eee27e986825fe6cac1d0eb50969cb3dbfe2a2a84ef5b3a40b911
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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 -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] dba95ada4186e27862c162a807406c696e2978c7b0c1bef982eacab22aa47931
[INFO] running `Command { std: "docker" "start" "-a" "dba95ada4186e27862c162a807406c696e2978c7b0c1bef982eacab22aa47931", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.97
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling slab v0.4.11
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling thiserror v2.0.16
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]    Compiling data-encoding v2.9.0
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling unsigned-varint v0.8.0
[INFO] [stderr]    Compiling core2 v0.4.0
[INFO] [stderr]    Compiling arrayref v0.3.9
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling ed25519 v2.2.3
[INFO] [stderr]    Compiling bs58 v0.5.1
[INFO] [stderr]    Compiling quick-protobuf v0.8.1
[INFO] [stderr]    Compiling multihash v0.19.3
[INFO] [stderr]    Compiling base-x v0.2.11
[INFO] [stderr]    Compiling web-time v1.1.0
[INFO] [stderr]    Compiling unsigned-varint v0.7.2
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling anyhow v1.0.99
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling cc v1.2.34
[INFO] [stderr]    Compiling instant v0.1.13
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]    Compiling snow v0.9.6
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling nohash-hasher v0.2.0
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling prometheus-client v0.22.3
[INFO] [stderr]    Compiling regex-automata v0.4.10
[INFO] [stderr]    Compiling tinyvec v1.10.0
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling serde_json v1.0.143
[INFO] [stderr]    Compiling radium v0.7.0
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling syn v2.0.105
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling dtoa v1.0.10
[INFO] [stderr]    Compiling uint v0.9.5
[INFO] [stderr]    Compiling tap v1.0.1
[INFO] [stderr]    Compiling hex_fmt v0.3.0
[INFO] [stderr]    Compiling wyz v0.5.1
[INFO] [stderr]    Compiling matchit v0.7.3
[INFO] [stderr]    Compiling funty v2.0.0
[INFO] [stderr]    Compiling time v0.3.41
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling socket2 v0.6.0
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling signal-hook-registry v1.4.6
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling nix v0.26.4
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling getrandom_or_panic v0.0.3
[INFO] [stderr]    Compiling threadpool v1.8.1
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling regex v1.11.2
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling blst v0.3.15
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling thiserror-impl v2.0.16
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling data-encoding-macro-internal v0.1.16
[INFO] [stderr]    Compiling data-encoding-macro v0.1.18
[INFO] [stderr]    Compiling multibase v0.9.1
[INFO] [stderr]    Compiling zeroize v1.8.1
[INFO] [stderr]    Compiling libp2p-swarm-derive v0.34.2
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling ed25519-dalek v2.2.0
[INFO] [stderr]    Compiling netlink-packet-utils v0.5.2
[INFO] [stderr]    Compiling netlink-packet-core v0.7.0
[INFO] [stderr]    Compiling netlink-packet-route v0.17.1
[INFO] [stderr]    Compiling enum-as-inner v0.6.1
[INFO] [stderr]    Compiling tokio v1.47.1
[INFO] [stderr]    Compiling prometheus-client-derive-encode v0.4.2
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling asynchronous-codec v0.7.0
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling futures-bounded v0.2.4
[INFO] [stderr]    Compiling quick-protobuf-codec v0.3.1
[INFO] [stderr]    Compiling futures-ticker v0.0.3
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling x25519-dalek v2.0.1
[INFO] [stderr]    Compiling serde_with_macros v3.14.0
[INFO] [stderr]    Compiling merlin v3.0.0
[INFO] [stderr]    Compiling pin-project v1.1.10
[INFO] [stderr]    Compiling rw-stream-sink v0.4.0
[INFO] [stderr]    Compiling multistream-select v0.13.0
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling yamux v0.12.1
[INFO] [stderr]    Compiling libp2p-identity v0.2.12
[INFO] [stderr]    Compiling yamux v0.13.6
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.0
[INFO] [stderr]    Compiling zerovec v0.11.4
[INFO] [stderr]    Compiling zerotrie v0.2.2
[INFO] [stderr]    Compiling tinystr v0.8.1
[INFO] [stderr]    Compiling icu_locale_core v2.0.0
[INFO] [stderr]    Compiling potential_utf v0.1.2
[INFO] [stderr]    Compiling netlink-sys v0.8.7
[INFO] [stderr]    Compiling hyper v1.7.0
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling icu_collections v2.0.0
[INFO] [stderr]    Compiling netlink-proto v0.11.5
[INFO] [stderr]    Compiling rtnetlink v0.13.1
[INFO] [stderr]    Compiling icu_provider v2.0.0
[INFO] [stderr]    Compiling icu_normalizer v2.0.0
[INFO] [stderr]    Compiling icu_properties v2.0.1
[INFO] [stderr]    Compiling hyper-util v0.1.16
[INFO] [stderr]    Compiling serde_bytes v0.11.17
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_path_to_error v0.1.17
[INFO] [stderr]    Compiling schnorrkel v0.11.5
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling serde_with v3.14.0
[INFO] [stderr]    Compiling bitvec v1.0.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling multiaddr v0.18.2
[INFO] [stderr]    Compiling if-watch v3.2.1
[INFO] [stderr]    Compiling hickory-proto v0.24.4
[INFO] [stderr]    Compiling libp2p-core v0.41.3
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling libp2p-swarm v0.44.2
[INFO] [stderr]    Compiling libp2p-yamux v0.45.2
[INFO] [stderr]    Compiling libp2p-tcp v0.41.0
[INFO] [stderr]    Compiling libp2p-noise v0.44.0
[INFO] [stderr]    Compiling libp2p-allow-block-list v0.3.0
[INFO] [stderr]    Compiling libp2p-connection-limits v0.3.1
[INFO] [stderr]    Compiling libp2p-identify v0.44.2
[INFO] [stderr]    Compiling libp2p-gossipsub v0.46.1
[INFO] [stderr]    Compiling libp2p-kad v0.45.3
[INFO] [stderr]    Compiling libp2p-ping v0.44.1
[INFO] [stderr]    Compiling libp2p-mdns v0.45.1
[INFO] [stderr]    Compiling libp2p v0.53.2
[INFO] [stderr]    Compiling l1-blockchain v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `BlsAggregate`
[INFO] [stdout]  --> src/types.rs:5:49
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{codec::qc_commitment, crypto::bls::{BlsAggregate, BlsSignatureBytes}, pos::registry::ValidatorId, mempool::encrypted::Thresho...
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `header_bytes`
[INFO] [stdout]  --> src/chain.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::codec::{header_bytes, header_signing_bytes, qc_commitment};
[INFO] [stdout]   |                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlockHeader`
[INFO] [stdout]   --> src/chain.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::types::{Block, BlockHeader, Event, Hash, Receipt, SlashingEvidence, Address};
[INFO] [stdout]    |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mempool::encrypted::ThresholdCiphertext`
[INFO] [stdout]  --> src/verify.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     mempool::encrypted::ThresholdCiphertext,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `header_bytes`
[INFO] [stdout]   --> src/stf.rs:13:50
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::codec::{tx_enum_bytes, receipt_bytes, header_bytes, tx_bytes};
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StateKey`
[INFO] [stdout]   --> src/stf.rs:17:81
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::types::{Block, Receipt, ExecOutcome, Hash, BlockHeader, Transaction, StateKey, Tx, Event, RevealTx, CommitTx, AccessList, Addr...
[INFO] [stdout]    |                                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AccessList`
[INFO] [stdout]    --> src/stf.rs:339:24
[INFO] [stdout]     |
[INFO] [stdout] 339 |     use crate::types::{AccessList, StateKey};
[INFO] [stdout]     |                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlsSignatureBytes`
[INFO] [stdout]  --> src/node.rs:3:48
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::crypto::bls::{verify_qc, BlsSigner, BlsSignatureBytes, BlsAggregate, vote_msg};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mempool::encrypted::ThresholdCiphertext`
[INFO] [stdout]   --> src/node.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::mempool::encrypted::ThresholdCiphertext;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::cmp::Ordering`
[INFO] [stdout]  --> src/pos/registry.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::cmp::Ordering;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/rpc.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::node::Node`
[INFO] [stdout]  --> src/rpc.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::node::Node;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/p2p.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::upgrade`
[INFO] [stdout]   --> src/p2p.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     core::upgrade,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `day`
[INFO] [stdout]    --> src/rpc.rs:436:14
[INFO] [stdout]     |
[INFO] [stdout] 436 |         let (day, used) = *limiter.book.get(&key).unwrap();
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_day`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commitment`
[INFO] [stdout]    --> src/chain.rs:507:49
[INFO] [stdout]     |
[INFO] [stdout] 507 |                 Event::ThresholdShareReceived { commitment, validator_id: _ } => {
[INFO] [stdout]     |                                                 ^^^^^^^^^^ help: try ignoring the field: `commitment: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commitment`
[INFO] [stdout]    --> src/chain.rs:699:49
[INFO] [stdout]     |
[INFO] [stdout] 699 |                 Event::ThresholdShareReceived { commitment, validator_id: _ } => {
[INFO] [stdout]     |                                                 ^^^^^^^^^^ help: try ignoring the field: `commitment: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/node.rs:493:17
[INFO] [stdout]     |
[INFO] [stdout] 493 |                 _ => {}
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/node.rs:493:17
[INFO] [stdout]     |
[INFO] [stdout] 485 |                 Tx::Commit(c) => {
[INFO] [stdout]     |                 ------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 489 |                 Tx::Avail(a) => {
[INFO] [stdout]     |                 ------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 493 |                 _ => {}
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:755:50
[INFO] [stdout]     |
[INFO] [stdout] 755 |     fn handle_proposal(&mut self, block: &Block, sender_id: ValidatorId) -> Result<(), String> {
[INFO] [stdout]     |                                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:873:43
[INFO] [stdout]     |
[INFO] [stdout] 873 |     fn handle_vote(&mut self, vote: Vote, sender_id: ValidatorId) -> Result<Option<Hash>, String> {
[INFO] [stdout]     |                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/node.rs:926:17
[INFO] [stdout]     |
[INFO] [stdout] 926 |             let n = hs.validator_pks.len();
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:900:37
[INFO] [stdout]     |
[INFO] [stdout] 900 |     fn handle_qc(&mut self, qc: QC, sender_id: ValidatorId) -> Result<Option<Hash>, String> {
[INFO] [stdout]     |                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:944:49
[INFO] [stdout]     |
[INFO] [stdout] 944 |     fn handle_view_change(&mut self, view: u64, sender_id: ValidatorId, timeout_qc: Option<QC>) -> Result<(), String> {
[INFO] [stdout]     |                                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `am_consensus_leader`
[INFO] [stdout]     --> src/node.rs:1287:13
[INFO] [stdout]      |
[INFO] [stdout] 1287 |         let am_consensus_leader: bool = if let Some(hs) = self.hotstuff.as_ref() {
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_am_consensus_leader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/node.rs:1382:13
[INFO] [stdout]      |
[INFO] [stdout] 1382 |         let mut header = crate::types::BlockHeader {
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CIPHERTEXT_SIZE` is never used
[INFO] [stdout]   --> src/mempool/encrypted.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const CIPHERTEXT_SIZE: usize = 48 + 96; // G1 point (48) + G2 signature (96)
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `pending_len` is never used
[INFO] [stdout]   --> src/consensus/mod.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl VoteAggregator {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 51 |     fn pending_len(&self) -> usize { self.pending_indices.len() }
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hex48` is never used
[INFO] [stdout]    --> src/rpc.rs:149:4
[INFO] [stdout]     |
[INFO] [stdout] 149 | fn hex48(s: &str) -> [u8; 48] {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/p2p.rs:74:10
[INFO] [stdout]    |
[INFO] [stdout] 74 |     Ping(ping::Event),
[INFO] [stdout]    |     ---- ^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 74 -     Ping(ping::Event),
[INFO] [stdout] 74 +     Ping(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/p2p.rs:75:14
[INFO] [stdout]    |
[INFO] [stdout] 75 |     Kademlia(kad::Event),
[INFO] [stdout]    |     -------- ^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 75 -     Kademlia(kad::Event),
[INFO] [stdout] 75 +     Kademlia(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `validator_to_peer` and `use_gossip_fallback` are never read
[INFO] [stdout]    --> src/p2p.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub struct ConsensusNetwork {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 147 |     validator_to_peer: Arc<Mutex<HashMap<ValidatorId, PeerId>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     use_gossip_fallback: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConsensusNetwork` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `GetConnectedPeers` and `TriggerDiscovery` are never constructed
[INFO] [stdout]    --> src/p2p.rs:164:5
[INFO] [stdout]     |
[INFO] [stdout] 160 | enum NetworkCommand {
[INFO] [stdout]     |      -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 164 |     GetConnectedPeers,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 165 |     TriggerDiscovery,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NetworkCommand` 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 `target_peers` and `max_peers` are never read
[INFO] [stdout]    --> src/p2p.rs:499:5
[INFO] [stdout]     |
[INFO] [stdout] 490 | struct NetworkTask {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 499 |     target_peers: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 500 |     max_peers: usize,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/node.rs:929:13
[INFO] [stdout]     |
[INFO] [stdout] 929 |             drop(hs);
[INFO] [stdout]     |             ^^^^^--^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  argument has type `&mut HotStuff`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 929 -             drop(hs);
[INFO] [stdout] 929 +             let _ = hs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/node.rs:962:17
[INFO] [stdout]     |
[INFO] [stdout] 962 |                 drop(hotstuff);
[INFO] [stdout]     |                 ^^^^^--------^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      argument has type `&mut HotStuff`
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 962 -                 drop(hotstuff);
[INFO] [stdout] 962 +                 let _ = hotstuff;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]     --> src/node.rs:1015:25
[INFO] [stdout]      |
[INFO] [stdout] 1015 |                         drop(hs2);
[INFO] [stdout]      |                         ^^^^^---^
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              argument has type `&mut HotStuff`
[INFO] [stdout]      |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]      |
[INFO] [stdout] 1015 -                         drop(hs2);
[INFO] [stdout] 1015 +                         let _ = hs2;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PacemakerConfig` and `hash_bytes_sha256`
[INFO] [stdout]   --> src/bin/localnet_multi.rs:21:14
[INFO] [stdout]    |
[INFO] [stdout] 21 |     crypto::{hash_bytes_sha256},
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     node::{Node, PacemakerConfig},
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/bin/localnet_multi.rs:208:46
[INFO] [stdout]     |
[INFO] [stdout] 208 | ...                   rx_opt = { node2.lock().unwrap().consensus_network().map(|net| net.subscribe()) };
[INFO] [stdout]     |                                ^^                                                                    ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_braces)]` on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 208 -                                     rx_opt = { node2.lock().unwrap().consensus_network().map(|net| net.subscribe()) };
[INFO] [stdout] 208 +                                     rx_opt = node2.lock().unwrap().consensus_network().map(|net| net.subscribe());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/bin/localnet_multi.rs:223:30
[INFO] [stdout]     |
[INFO] [stdout] 223 |                     rx_opt = { node2.lock().unwrap().consensus_network().map(|net| net.subscribe()) };
[INFO] [stdout]     |                              ^^                                                                    ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 223 -                     rx_opt = { node2.lock().unwrap().consensus_network().map(|net| net.subscribe()) };
[INFO] [stdout] 223 +                     rx_opt = node2.lock().unwrap().consensus_network().map(|net| net.subscribe());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlsAggregate`
[INFO] [stdout]  --> src/types.rs:5:49
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{codec::qc_commitment, crypto::bls::{BlsAggregate, BlsSignatureBytes}, pos::registry::ValidatorId, mempool::encrypted::Thresho...
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `header_bytes`
[INFO] [stdout]   --> src/stf.rs:13:50
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::codec::{tx_enum_bytes, receipt_bytes, header_bytes, tx_bytes};
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StateKey`
[INFO] [stdout]   --> src/stf.rs:17:81
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::types::{Block, Receipt, ExecOutcome, Hash, BlockHeader, Transaction, StateKey, Tx, Event, RevealTx, CommitTx, AccessList, Addr...
[INFO] [stdout]    |                                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AccessList`
[INFO] [stdout]    --> src/stf.rs:339:24
[INFO] [stdout]     |
[INFO] [stdout] 339 |     use crate::types::{AccessList, StateKey};
[INFO] [stdout]     |                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ThresholdCiphertext` and `ThresholdShare`
[INFO] [stdout]   --> src/mempool/mod.rs:15:38
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use encrypted::{ThresholdEngine, ThresholdCiphertext, ThresholdShare, ThresholdError};
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlsSignatureBytes`
[INFO] [stdout]  --> src/node.rs:3:48
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::crypto::bls::{verify_qc, BlsSigner, BlsSignatureBytes, BlsAggregate, vote_msg};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mempool::encrypted::ThresholdCiphertext`
[INFO] [stdout]   --> src/node.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::mempool::encrypted::ThresholdCiphertext;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `header_bytes`
[INFO] [stdout]  --> src/chain.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::codec::{header_bytes, header_signing_bytes, qc_commitment};
[INFO] [stdout]   |                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlockHeader`
[INFO] [stdout]   --> src/chain.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::types::{Block, BlockHeader, Event, Hash, Receipt, SlashingEvidence, Address};
[INFO] [stdout]    |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mempool::encrypted::ThresholdCiphertext`
[INFO] [stdout]  --> src/verify.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     mempool::encrypted::ThresholdCiphertext,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::cmp::Ordering`
[INFO] [stdout]  --> src/pos/registry.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::cmp::Ordering;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/p2p.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::upgrade`
[INFO] [stdout]   --> src/p2p.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     core::upgrade,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/node.rs:493:17
[INFO] [stdout]     |
[INFO] [stdout] 493 |                 _ => {}
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/node.rs:493:17
[INFO] [stdout]     |
[INFO] [stdout] 485 |                 Tx::Commit(c) => {
[INFO] [stdout]     |                 ------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 489 |                 Tx::Avail(a) => {
[INFO] [stdout]     |                 ------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 493 |                 _ => {}
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:755:50
[INFO] [stdout]     |
[INFO] [stdout] 755 |     fn handle_proposal(&mut self, block: &Block, sender_id: ValidatorId) -> Result<(), String> {
[INFO] [stdout]     |                                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:873:43
[INFO] [stdout]     |
[INFO] [stdout] 873 |     fn handle_vote(&mut self, vote: Vote, sender_id: ValidatorId) -> Result<Option<Hash>, String> {
[INFO] [stdout]     |                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/node.rs:926:17
[INFO] [stdout]     |
[INFO] [stdout] 926 |             let n = hs.validator_pks.len();
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:900:37
[INFO] [stdout]     |
[INFO] [stdout] 900 |     fn handle_qc(&mut self, qc: QC, sender_id: ValidatorId) -> Result<Option<Hash>, String> {
[INFO] [stdout]     |                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:944:49
[INFO] [stdout]     |
[INFO] [stdout] 944 |     fn handle_view_change(&mut self, view: u64, sender_id: ValidatorId, timeout_qc: Option<QC>) -> Result<(), String> {
[INFO] [stdout]     |                                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `am_consensus_leader`
[INFO] [stdout]     --> src/node.rs:1287:13
[INFO] [stdout]      |
[INFO] [stdout] 1287 |         let am_consensus_leader: bool = if let Some(hs) = self.hotstuff.as_ref() {
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_am_consensus_leader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/node.rs:1382:13
[INFO] [stdout]      |
[INFO] [stdout] 1382 |         let mut header = crate::types::BlockHeader {
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commitment`
[INFO] [stdout]    --> src/chain.rs:507:49
[INFO] [stdout]     |
[INFO] [stdout] 507 |                 Event::ThresholdShareReceived { commitment, validator_id: _ } => {
[INFO] [stdout]     |                                                 ^^^^^^^^^^ help: try ignoring the field: `commitment: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commitment`
[INFO] [stdout]    --> src/chain.rs:699:49
[INFO] [stdout]     |
[INFO] [stdout] 699 |                 Event::ThresholdShareReceived { commitment, validator_id: _ } => {
[INFO] [stdout]     |                                                 ^^^^^^^^^^ help: try ignoring the field: `commitment: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hex32` is never used
[INFO] [stdout]   --> src/main.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn hex32(h: &Hash) -> String { hex::encode(h) }
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `transfer` are never used
[INFO] [stdout]   --> src/types.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Transaction {
[INFO] [stdout]    | ---------------- associated functions in this implementation
[INFO] [stdout] 20 |     pub fn new(from: impl Into<Address>, to: impl Into<Address>, amount: u64, nonce: u64, access_list: AccessList) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn transfer(from: impl Into<Address>, to: impl Into<Address>, amount: u64, nonce: u64) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new_with_reveals` and `new` are never used
[INFO] [stdout]   --> src/types.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Block {
[INFO] [stdout]    | ---------- associated functions in this implementation
[INFO] [stdout] 43 |     pub fn new_with_reveals(txs: Vec<Tx>, reveals: Vec<RevealTx>, mut header: BlockHeader, justify_qc: QC) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn new(txs: Vec<Tx>, header: BlockHeader, justify_qc: QC) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExecOutcome` is never used
[INFO] [stdout]   --> src/types.rs:59:10
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub enum ExecOutcome {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Receipt` is never constructed
[INFO] [stdout]   --> src/types.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct Receipt {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pacemaker` is never constructed
[INFO] [stdout]   --> src/types.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct Pacemaker {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `on_enter_view`, `expired`, `bump_backoff`, and `observe_qc_latency` are never used
[INFO] [stdout]    --> src/types.rs:95:12
[INFO] [stdout]     |
[INFO] [stdout] 94  | impl Pacemaker {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 95  |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn on_enter_view(&mut self, now_ms: u128) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn expired(&self, now_ms: u128) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn bump_backoff(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn observe_qc_latency(&mut self, sample_ms: u64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HotStuffState` is never constructed
[INFO] [stdout]    --> src/types.rs:201:12
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub struct HotStuffState {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_order` is never used
[INFO] [stdout]    --> src/types.rs:273:4
[INFO] [stdout]     |
[INFO] [stdout] 273 | fn key_order<'a>(k: &'a StateKey) -> (u8, &'a str) {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `canonicalize`, `for_transfer`, `contains_sorted`, `covers`, `require_sender_balance_rw`, and `require_sender_nonce_rw` are never used
[INFO] [stdout]    --> src/types.rs:282:12
[INFO] [stdout]     |
[INFO] [stdout] 280 | impl AccessList {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 281 |     /// Sort + dedup in-place to canonical form.
[INFO] [stdout] 282 |     pub fn canonicalize(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn for_transfer(from: &Address, to: &Address) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     fn contains_sorted(slice: &[StateKey], key: &StateKey) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 315 |     pub fn covers(&self, required: &[StateKey]) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     pub fn require_sender_balance_rw(&self, sender: &Address) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn require_sender_nonce_rw(&self, sender: &Address) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommitmentMeta` is never constructed
[INFO] [stdout]    --> src/types.rs:381:12
[INFO] [stdout]     |
[INFO] [stdout] 381 | pub struct CommitmentMeta {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Event` is never used
[INFO] [stdout]    --> src/types.rs:393:10
[INFO] [stdout]     |
[INFO] [stdout] 393 | pub enum Event {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CHAIN_ID` is never used
[INFO] [stdout]  --> src/state.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const CHAIN_ID: u64 = 1;
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COMMIT_FEE` is never used
[INFO] [stdout]  --> src/state.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const COMMIT_FEE: u64 = 1;
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REVEAL_WINDOW` is never used
[INFO] [stdout]  --> src/state.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const REVEAL_WINDOW: u64 = 3;
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DECRYPTION_DELAY` is never used
[INFO] [stdout]  --> src/state.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const DECRYPTION_DELAY: u64 = 1;   // blocks after commit before reveals may start
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ZERO_ADDRESS` is never used
[INFO] [stdout]   --> src/state.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const ZERO_ADDRESS: &str = "0x0000000000000000000000000000000000000000";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TREASURY_ADDRESS` is never used
[INFO] [stdout]   --> src/state.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const TREASURY_ADDRESS: &str = "0x0000000000000000000000000000000000000001";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AVAIL_FEE` is never used
[INFO] [stdout]   --> src/state.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const AVAIL_FEE: u64 = 1;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_AVAILS_PER_BLOCK` is never used
[INFO] [stdout]   --> src/state.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub const MAX_AVAILS_PER_BLOCK: usize = 50_000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_REVEALS_PER_BLOCK` is never used
[INFO] [stdout]   --> src/state.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const MAX_REVEALS_PER_BLOCK: usize = 50_000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PENDING_COMMITS_PER_ACCOUNT` is never used
[INFO] [stdout]   --> src/state.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const MAX_PENDING_COMMITS_PER_ACCOUNT: usize = 1_000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_AL_READS` is never used
[INFO] [stdout]   --> src/state.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const MAX_AL_READS: usize = 256;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_AL_WRITES` is never used
[INFO] [stdout]   --> src/state.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const MAX_AL_WRITES: usize = 256;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Nonces` is never used
[INFO] [stdout]   --> src/state.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub type Nonces = HashMap<Address, u64>;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Commitments` is never used
[INFO] [stdout]   --> src/state.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub type Commitments = HashMap<Hash, CommitmentMeta>; 
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Available` is never used
[INFO] [stdout]   --> src/state.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub type Available = HashSet<Hash>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TxError` is never used
[INFO] [stdout]   --> src/stf.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum TxError {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BlockError` is never used
[INFO] [stdout]   --> src/stf.rs:45:10
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum BlockError {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockResult` is never constructed
[INFO] [stdout]   --> src/stf.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct BlockResult { 
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BodyResult` is never constructed
[INFO] [stdout]   --> src/stf.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct BodyResult {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_transaction` is never used
[INFO] [stdout]    --> src/stf.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn process_transaction(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_avail` is never used
[INFO] [stdout]    --> src/stf.rs:234:8
[INFO] [stdout]     |
[INFO] [stdout] 234 | pub fn process_avail(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pending_for_owner` is never used
[INFO] [stdout]    --> src/stf.rs:321:4
[INFO] [stdout]     |
[INFO] [stdout] 321 | fn pending_for_owner(commitments: &Commitments, owner: &str) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_commit` is never used
[INFO] [stdout]    --> src/stf.rs:327:8
[INFO] [stdout]     |
[INFO] [stdout] 327 | pub fn process_commit(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_reveal` is never used
[INFO] [stdout]    --> src/stf.rs:459:4
[INFO] [stdout]     |
[INFO] [stdout] 459 | fn process_reveal(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_block` is never used
[INFO] [stdout]    --> src/stf.rs:527:8
[INFO] [stdout]     |
[INFO] [stdout] 527 | pub fn process_block(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DOM_ORDER` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const DOM_ORDER:  &[u8] = b"ORDER";
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COMMIT_DOMAIN` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const COMMIT_DOMAIN: &[u8] = b"CAR_COMMIT_V1";
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REVEAL_PAIR_DOMAIN` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const REVEAL_PAIR_DOMAIN: &[u8] = b"CAR_REVEAL_PAIR_V1";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIGN_COMMIT_DOMAIN` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const SIGN_COMMIT_DOMAIN: &[u8] = b"SIGN_COMMIT_V1";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIGN_AVAIL_DOMAIN` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const SIGN_AVAIL_DOMAIN:  &[u8] = b"SIGN_AVAIL_V1";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_hex_addr` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn is_hex_addr(s: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `addr_from_pubkey` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn addr_from_pubkey(pubkey: &[u8; 32]) -> [u8; 20] {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `addr_hex` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn addr_hex(addr: &[u8; 20]) -> Address {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_ed25519` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn verify_ed25519(pubkey: &[u8; 32], sig_bytes: &[u8; 64], msg: &[u8]) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_signing_preimage` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn commit_signing_preimage(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `avail_signing_preimage` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn avail_signing_preimage(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commitment_hash` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn commitment_hash(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reveal_order_key` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn reveal_order_key(commitment: &Hash, randomness: &Hash) -> Hash {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_reveal_pair` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn hash_reveal_pair(commitment: &Hash, tx_hash: &Hash) -> Hash {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:122:4
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn hash(bytes: &[u8]) -> Hash {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_bytes_sha256` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn hash_bytes_sha256(data: &[u8]) -> Hash {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parent_hash` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:140:4
[INFO] [stdout]     |
[INFO] [stdout] 140 | fn parent_hash(left: &Hash, right: &Hash) -> Hash {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merkle_root` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub fn merkle_root(leaves: &[Hash]) -> Hash {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VRF_OUTPUT_BYTES` is never used
[INFO] [stdout]  --> src/crypto/vrf.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub const VRF_OUTPUT_BYTES: usize = 32;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `VrfOutput` is never used
[INFO] [stdout]  --> src/crypto/vrf.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub type VrfOutput = [u8; VRF_OUTPUT_BYTES];
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `VrfPreOut` is never used
[INFO] [stdout]  --> src/crypto/vrf.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub type VrfPreOut = [u8; VRF_OUTPUT_BYTES];
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `VrfProof` is never used
[INFO] [stdout]  --> src/crypto/vrf.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub type VrfProof  = Vec<u8>;
[INFO] [stdout]   |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VrfPubkey` is never constructed
[INFO] [stdout]  --> src/crypto/vrf.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct VrfPubkey(pub [u8; 32]);
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `VrfSigner` is never used
[INFO] [stdout]   --> src/crypto/vrf.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait VrfSigner {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `VrfVerifier` is never used
[INFO] [stdout]   --> src/crypto/vrf.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub trait VrfVerifier {
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SchnorrkelVrfSigner` is never constructed
[INFO] [stdout]   --> src/crypto/vrf.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct SchnorrkelVrfSigner {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SchnorrkelVrf` is never constructed
[INFO] [stdout]   --> src/crypto/vrf.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct SchnorrkelVrf;
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_deterministic_seed` and `public_bytes` are never used
[INFO] [stdout]   --> src/crypto/vrf.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl SchnorrkelVrfSigner {
[INFO] [stdout]    | ------------------------ associated items in this implementation
[INFO] [stdout] 32 |     pub fn from_deterministic_seed(seed32: [u8; 32]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn public_bytes(&self) -> [u8; 32] { self.kp.public.to_bytes() }
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_vrf_msg` is never used
[INFO] [stdout]    --> src/crypto/vrf.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn build_vrf_msg(epoch_seed: &[u8; 32], bundle_start_slot: u64, proposer_id: u64) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vrf_eligible` is never used
[INFO] [stdout]    --> src/crypto/vrf.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub fn vrf_eligible(stake: u128, total: u128, out: &VrfOutput, tau: f64) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLS_DST` is never used
[INFO] [stdout]   --> src/crypto/bls.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const BLS_DST: &[u8] = b"VORTEX-BLS-QUORUM-v1";
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VOTE_MSG_VERSION` is never used
[INFO] [stdout]   --> src/crypto/bls.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub const VOTE_MSG_VERSION: u8 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SignerBitmap` is never used
[INFO] [stdout]   --> src/crypto/bls.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub type SignerBitmap = BitVec;
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlsAggregate` is never constructed
[INFO] [stdout]   --> src/crypto/bls.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct BlsAggregate {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push`, `finalize`, `clear`, `len`, and `is_empty` are never used
[INFO] [stdout]   --> src/crypto/bls.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl BlsAggregate {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 50 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn push(&mut self, sig_bytes: &[u8; 96]) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn finalize(&self) -> Option<BlsSignatureBytes> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vote_msg` is never used
[INFO] [stdout]    --> src/crypto/bls.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub fn vote_msg(block_id: &[u8], view: u64) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlsSigner` is never constructed
[INFO] [stdout]    --> src/crypto/bls.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct BlsSigner(mpk::SecretKey);
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_sk_bytes`, `public_key_bytes`, and `sign` are never used
[INFO] [stdout]    --> src/crypto/bls.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout] 124 | impl BlsSigner {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 125 |     /// Create from 32-byte secret key.
[INFO] [stdout] 126 |     pub fn from_sk_bytes(sk: &[u8; 32]) -> Option<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn public_key_bytes(&self) -> [u8; 48] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn sign(&self, msg: &[u8]) -> BlsSignatureBytes {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_sig` is never used
[INFO] [stdout]    --> src/crypto/bls.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub fn verify_sig(pk_bytes: &[u8; 48], msg: &[u8], sig: &BlsSignatureBytes) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fast_aggregate_verify` is never used
[INFO] [stdout]    --> src/crypto/bls.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub fn fast_aggregate_verify(sig: &BlsSignatureBytes, msg: &[u8], signer_pks: &[[u8; 48]]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_signer_pks_from_bitmap` is never used
[INFO] [stdout]    --> src/crypto/bls.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub fn collect_signer_pks_from_bitmap(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_quorum` is never used
[INFO] [stdout]    --> src/crypto/bls.rs:208:8
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub fn has_quorum(n: usize, bitmap: &SignerBitmap) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BlsQcError` is never used
[INFO] [stdout]    --> src/crypto/bls.rs:217:10
[INFO] [stdout]     |
[INFO] [stdout] 217 | pub enum BlsQcError {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_qc` is never used
[INFO] [stdout]    --> src/crypto/bls.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub fn verify_qc(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BASE_FEE_PER_TX` is never used
[INFO] [stdout]  --> src/gas.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub const BASE_FEE_PER_TX: u64 = 1;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CODEC_VERSION` is never used
[INFO] [stdout]  --> src/codec.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const CODEC_VERSION: u8 = 1;
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DOM_TX` is never used
[INFO] [stdout]   --> src/codec.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const DOM_TX: &[u8] = b"TX";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DOM_RCPT` is never used
[INFO] [stdout]   --> src/codec.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const DOM_RCPT: &[u8] = b"RCPT";
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DOM_HDR` is never used
[INFO] [stdout]   --> src/codec.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const DOM_HDR: &[u8] = b"HDR";
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_COMMIT` is never used
[INFO] [stdout]   --> src/codec.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const TAG_COMMIT: u8 = 1;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_AVAIL` is never used
[INFO] [stdout]   --> src/codec.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const TAG_AVAIL: u8 = 2;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `QC_COMMIT_VERSION` is never used
[INFO] [stdout]   --> src/codec.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const QC_COMMIT_VERSION: u8 = 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_bitmap_lsb0` is never used
[INFO] [stdout]   --> src/codec.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn encode_bitmap_lsb0(bitmap: &SignerBitmap) -> Vec<u8> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `qc_commitment` is never used
[INFO] [stdout]   --> src/codec.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn qc_commitment(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_u64` is never used
[INFO] [stdout]   --> src/codec.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn put_u64(dst: &mut Vec<u8>, x: u64) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_u32` is never used
[INFO] [stdout]   --> src/codec.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn put_u32(v: &mut Vec<u8>, x: u32) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_str` is never used
[INFO] [stdout]   --> src/codec.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn put_str(dst: &mut Vec<u8>, s: &str) {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string_bytes` is never used
[INFO] [stdout]   --> src/codec.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub fn string_bytes(s: &str) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `access_list_bytes` is never used
[INFO] [stdout]   --> src/codec.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn access_list_bytes(al: &AccessList) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tx_bytes` is never used
[INFO] [stdout]   --> src/codec.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn tx_bytes(tx: &Transaction) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `receipt_bytes` is never used
[INFO] [stdout]   --> src/codec.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub fn receipt_bytes(r: &Receipt) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_access_list` is never used
[INFO] [stdout]    --> src/codec.rs:122:4
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn put_access_list(v: &mut Vec<u8>, al: &AccessList) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `header_signing_bytes` is never used
[INFO] [stdout]    --> src/codec.rs:159:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub fn header_signing_bytes(h: &BlockHeader) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `header_bytes` is never used
[INFO] [stdout]    --> src/codec.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub fn header_bytes(h: &BlockHeader) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `header_id` is never used
[INFO] [stdout]    --> src/codec.rs:225:8
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub fn header_id(h: &BlockHeader) -> Hash {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_bytes` is never used
[INFO] [stdout]    --> src/codec.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn put_bytes(v: &mut Vec<u8>, bytes: &[u8]) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tx_enum_bytes` is never used
[INFO] [stdout]    --> src/codec.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub fn tx_enum_bytes(tx: &Tx) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MempoolConfig` is never constructed
[INFO] [stdout]   --> src/mempool/mod.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct MempoolConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TxId` is never constructed
[INFO] [stdout]   --> src/mempool/mod.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct TxId(pub [u8; 32]);
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommitmentId` is never constructed
[INFO] [stdout]   --> src/mempool/mod.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct CommitmentId(pub [u8; 32]);
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BalanceView` is never used
[INFO] [stdout]   --> src/mempool/mod.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub trait BalanceView {
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AdmissionError` is never used
[INFO] [stdout]   --> src/mempool/mod.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum AdmissionError {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ensure_affordable` is never used
[INFO] [stdout]   --> src/mempool/mod.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn ensure_affordable(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockCandidate` is never constructed
[INFO] [stdout]   --> src/mempool/mod.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct BlockCandidate {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockSelectionLimits` is never constructed
[INFO] [stdout]   --> src/mempool/mod.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub struct BlockSelectionLimits {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `StateView` is never used
[INFO] [stdout]   --> src/mempool/mod.rs:89:11
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub trait StateView: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SelectError` is never used
[INFO] [stdout]    --> src/mempool/mod.rs:113:10
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub enum SelectError {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Mempool` is never used
[INFO] [stdout]    --> src/mempool/mod.rs:121:11
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub trait Mempool: Send + Sync {
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MempoolImpl` is never constructed
[INFO] [stdout]    --> src/mempool/mod.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub struct MempoolImpl {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QueuedItem` is never constructed
[INFO] [stdout]    --> src/mempool/mod.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub struct QueuedItem<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/mempool/mod.rs:177:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | impl MempoolImpl {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 177 |     pub fn new(config: MempoolConfig) -> Arc<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn pending_commits_for_sender(&self, sender: &str) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn config(&self) -> &MempoolConfig {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn debug_read(
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn debug_write(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn revalidate<F>(&self, mut keep: F)
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn revalidate_affordability(&self, view: &dyn BalanceView, fs: &FeeState) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommitQueueItem` is never constructed
[INFO] [stdout]   --> src/mempool/queues.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct CommitQueueItem {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AvailQueueItem` is never constructed
[INFO] [stdout]   --> src/mempool/queues.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct AvailQueueItem {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RevealQueueItem` is never constructed
[INFO] [stdout]   --> src/mempool/queues.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct RevealQueueItem {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EvictKind` is never used
[INFO] [stdout]   --> src/mempool/queues.rs:50:10
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub enum EvictKind {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommitQueue` is never constructed
[INFO] [stdout]   --> src/mempool/queues.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct CommitQueue {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AvailQueue` is never constructed
[INFO] [stdout]   --> src/mempool/queues.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct AvailQueue {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RevealQueue` is never constructed
[INFO] [stdout]   --> src/mempool/queues.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub struct RevealQueue {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `txid_from` is never used
[INFO] [stdout]   --> src/mempool/queues.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn txid_from(bytes: &[u8]) -> TxId {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Queues` is never constructed
[INFO] [stdout]    --> src/mempool/queues.rs:100:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub struct Queues {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `key_for_fee_order` is never used
[INFO] [stdout]    --> src/mempool/queues.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl CommitQueueItem {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 107 |     fn key_for_fee_order(&self) -> (i128, Address) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `key_for_fee_order` is never used
[INFO] [stdout]    --> src/mempool/queues.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl AvailQueueItem {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 112 |     fn key_for_fee_order(&self) -> (i128, Address) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `key_for_fee_order` is never used
[INFO] [stdout]    --> src/mempool/queues.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | impl RevealQueueItem {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 117 |     fn key_for_fee_order(&self) -> (i128, Address, u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `precheck_commit`, `insert_commit_minimal`, and `retain_by` are never used
[INFO] [stdout]    --> src/mempool/queues.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | impl CommitQueue {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 122 |     fn precheck_commit(&self, c: &CommitTx, max_pending: u32) -> Result<(), AdmissionError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn insert_commit_minimal(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn retain_by<F>(&mut self, mut keep: F)
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `precheck_avail`, `insert_avail_minimal`, and `retain_by` are never used
[INFO] [stdout]    --> src/mempool/queues.rs:214:8
[INFO] [stdout]     |
[INFO] [stdout] 213 | impl AvailQueue {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 214 |     fn precheck_avail(&self, a: &AvailTx) -> Result<(), AdmissionError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn insert_avail_minimal(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub fn retain_by<F>(&mut self, mut keep: F)
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `precheck_reveal_locked`, `insert_reveal_minimal`, and `retain_by` are never used
[INFO] [stdout]    --> src/mempool/queues.rs:271:12
[INFO] [stdout]     |
[INFO] [stdout] 270 | impl RevealQueue {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 271 |     pub fn precheck_reveal_locked(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn insert_reveal_minimal(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn retain_by<F>(&mut self, mut keep: F)
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evict_any` is never used
[INFO] [stdout]    --> src/mempool/queues.rs:344:12
[INFO] [stdout]     |
[INFO] [stdout] 343 | impl Queues {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] 344 |     pub fn evict_any(&mut self, id: &crate::mempool::TxId) -> EvictKind {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `purge_older_than` and `evict_by_id` are never used
[INFO] [stdout]    --> src/mempool/queues.rs:358:12
[INFO] [stdout]     |
[INFO] [stdout] 357 | impl CommitQueue {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 358 |     pub fn purge_older_than(&mut self, current_height: u64, ttl_blocks: u32) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 372 |     pub fn evict_by_id(&mut self, id: &crate::mempool::TxId) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `purge_older_than` and `evict_by_id` are never used
[INFO] [stdout]    --> src/mempool/queues.rs:397:12
[INFO] [stdout]     |
[INFO] [stdout] 396 | impl AvailQueue {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 397 |     pub fn purge_older_than(&mut self, current_height: u64, ttl_blocks: u32) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub fn evict_by_id(&mut self, id: &crate::mempool::TxId) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `evict_by_id` and `purge_older_than` are never used
[INFO] [stdout]    --> src/mempool/queues.rs:431:12
[INFO] [stdout]     |
[INFO] [stdout] 429 | impl RevealQueue {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 430 |     /// Remove a reveal by TxId from all indices.
[INFO] [stdout] 431 |     pub fn evict_by_id(&mut self, id: &crate::mempool::TxId) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     pub fn purge_older_than(&mut self, current_height: u64, window_blocks: u32) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Batch` is never constructed
[INFO] [stdout]   --> src/mempool/workers.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Batch {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/mempool/workers.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Batch {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn new(txs: Vec<Tx>, parents: Vec<Hash>, producer_id: ValidatorId, signature: [u8; 64]) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BatchStore` is never constructed
[INFO] [stdout]   --> src/mempool/workers.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct BatchStore {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `insert`, `get`, `children_of`, and `frontier` are never used
[INFO] [stdout]   --> src/mempool/workers.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl BatchStore {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 53 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn insert(&self, batch: Batch) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn get(&self, id: &Hash) -> Option<Batch> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn children_of(&self, id: &Hash) -> Vec<Hash> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn frontier(&self) -> Vec<Hash> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkerHandle` is never constructed
[INFO] [stdout]    --> src/mempool/workers.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct WorkerHandle {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_workers` is never used
[INFO] [stdout]    --> src/mempool/workers.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn spawn_workers(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TE_DOMAIN_ENCRYPT` is never used
[INFO] [stdout]   --> src/mempool/encrypted.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const TE_DOMAIN_ENCRYPT: &[u8] = b"VORTEX-THRESHOLD-ENCRYPT-V1";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TE_DOMAIN_SHARE` is never used
[INFO] [stdout]   --> src/mempool/encrypted.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const TE_DOMAIN_SHARE: &[u8] = b"VORTEX-THRESHOLD-SHARE-V1";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TE_DOMAIN_DERIVE` is never used
[INFO] [stdout]   --> src/mempool/encrypted.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const TE_DOMAIN_DERIVE: &[u8] = b"VORTEX-THRESHOLD-DERIVE-V1";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CIPHERTEXT_SIZE` is never used
[INFO] [stdout]   --> src/mempool/encrypted.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const CIPHERTEXT_SIZE: usize = 48 + 96; // G1 point (48) + G2 signature (96)
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ThresholdError` is never used
[INFO] [stdout]   --> src/mempool/encrypted.rs:35:10
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub enum ThresholdError {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `verify` and `domain_hash` are never used
[INFO] [stdout]   --> src/mempool/encrypted.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | impl ThresholdPublicKey {
[INFO] [stdout]    | ----------------------- methods in this implementation
[INFO] [stdout] 76 |     /// Verify this public key has valid BLS12-381 structure
[INFO] [stdout] 77 |     pub fn verify(&self) -> Result<(), ThresholdError> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn domain_hash(&self) -> Hash {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `size`, `verify`, and `commitment_hash` are never used
[INFO] [stdout]    --> src/mempool/encrypted.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl ThresholdCiphertext {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] 110 |     /// Total size of this ciphertext in bytes
[INFO] [stdout] 111 |     pub fn size(&self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn verify(&self) -> Result<(), ThresholdError> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn commitment_hash(&self) -> Hash {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `verify` is never used
[INFO] [stdout]    --> src/mempool/encrypted.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl ThresholdShare {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 158 |     /// Verify this share has valid cryptographic structure
[INFO] [stdout] 159 |     pub fn verify(&self, ciphertext: &ThresholdCiphertext) -> Result<(), ThresholdError> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ThresholdEngine` is never constructed
[INFO] [stdout]    --> src/mempool/encrypted.rs:176:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub struct ThresholdEngine {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/mempool/encrypted.rs:185:12
[INFO] [stdout]     |
[INFO] [stdout] 183 | impl ThresholdEngine {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 184 |     /// Create new threshold engine
[INFO] [stdout] 185 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn update_public_key(&mut self, pk: ThresholdPublicKey) -> Result<(), ThresholdError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn add_validator_share(&mut self, validator_id: ValidatorId, share: [u8; 32]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn remove_validator_share(&mut self, validator_id: ValidatorId) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn encrypt(&self, data: &[u8], epoch: u64) -> Result<ThresholdCiphertext, ThresholdError> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn generate_share(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 316 |     pub fn decrypt(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355 |     pub fn can_decrypt(&self, shares: &[ThresholdShare]) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 365 |     fn reconstruct_master_secret(&self) -> Result<blst_scalar, ThresholdError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 439 |     fn generate_ephemeral_key(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 493 |     fn aes_encrypt(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 526 |     fn aes_decrypt(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 561 |     fn build_proof_message(&self, validator_id: ValidatorId, epoch: u64) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 568 |     fn aggregate_shares(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_threshold_public_key` is never used
[INFO] [stdout]    --> src/mempool/encrypted.rs:711:12
[INFO] [stdout]     |
[INFO] [stdout] 711 |     pub fn generate_threshold_public_key(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_private_shares` is never used
[INFO] [stdout]    --> src/mempool/encrypted.rs:734:12
[INFO] [stdout]     |
[INFO] [stdout] 734 |     pub fn generate_private_shares(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_share_consistency` is never used
[INFO] [stdout]    --> src/mempool/encrypted.rs:900:12
[INFO] [stdout]     |
[INFO] [stdout] 900 |     pub fn verify_share_consistency(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VoteAggregator` is never constructed
[INFO] [stdout]   --> src/consensus/mod.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct VoteAggregator {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add`, `add_pending`, `pending_len`, and `drain_pending_with_agg_verify` are never used
[INFO] [stdout]   --> src/consensus/mod.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl VoteAggregator {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 25 |     fn new(n: usize, block_id: Hash, view: u64) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     fn add(&mut self, voter_idx: usize, sig: &BlsSignatureBytes) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     fn add_pending(&mut self, voter_idx: usize, sig: &BlsSignatureBytes) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     fn pending_len(&self) -> usize { self.pending_indices.len() }
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 52 |     fn drain_pending_with_agg_verify(&mut self, validator_pks: &[[u8; 48]]) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HotStuff` is never constructed
[INFO] [stdout]    --> src/consensus/mod.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct HotStuff {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Error` is never used
[INFO] [stdout]    --> src/consensus/mod.rs:116:10
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub enum Error {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BlockStore` is never used
[INFO] [stdout]    --> src/consensus/mod.rs:123:11
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub trait BlockStore {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `safe_to_vote` is never used
[INFO] [stdout]    --> src/consensus/mod.rs:131:4
[INFO] [stdout]     |
[INFO] [stdout] 131 | fn safe_to_vote<S: BlockStore>(
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/consensus/mod.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout] 149 | impl HotStuff {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 150 |     pub fn new(state: HotStuffState, validator_pks: Vec<[u8;48]>, validator_id: ValidatorId, bls_signer: Option<BlsSigner>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn observe_block_header(&mut self, header: &BlockHeader) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn debug_aggregators(&self) -> Vec<(u64, Hash, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn debug_parent_index_len(&self) -> usize { self.parent_index.len() }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn debug_parent_index_sample(&self, limit: usize) -> Vec<(Hash, Hash)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn on_new_slot(&mut self, now_ms: u128) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn on_block_proposal(&mut self, block: &Block, _now_ms: u128) -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn on_qc<S: BlockStore>(
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     pub fn maybe_propose(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     pub fn maybe_vote<S: BlockStore>(&mut self, store: &S, block: &Block) -> Option<Vote> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 359 |     pub fn on_vote(&mut self, vote: Vote) -> Option<QC> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     pub fn drain_evidence(&mut self) -> Vec<SlashingEvidence> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 417 |     pub fn maybe_vote_self(&mut self, block: &Block) -> Option<Vote> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 438 |     pub fn on_qc_self(&mut self, qc: QC, now_ms: u128) -> Result<Option<Hash>, Error> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_SLOT_MS` is never used
[INFO] [stdout]  --> src/consensus/dev_loop.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const DEFAULT_SLOT_MS: u64 = 1000;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_LIMITS` is never used
[INFO] [stdout]  --> src/consensus/dev_loop.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const DEFAULT_LIMITS: BlockSelectionLimits = BlockSelectionLimits { max_commits: 1024, max_avails: 1024, max_reveals: 1024 };
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DevLoopConfig` is never constructed
[INFO] [stdout]  --> src/consensus/dev_loop.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct DevLoopConfig { 
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DevLoop` is never constructed
[INFO] [stdout]   --> src/consensus/dev_loop.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct DevLoop<N> { 
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DevNode` is never used
[INFO] [stdout]   --> src/consensus/dev_loop.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub trait DevNode {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `tick_once`, `run_for_slots`, `run_until_height`, and `run_for_duration` are never used
[INFO] [stdout]   --> src/consensus/dev_loop.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl<N> DevLoop<N> where N: DevNode {
[INFO] [stdout]    | ----------------------------------- associated items in this implementation
[INFO] [stdout] 26 |     pub fn new(node: N, cfg: DevLoopConfig) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     fn tick_once(&mut self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn run_for_slots(&mut self, n: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn run_until_height(&mut self, h: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn run_for_duration(&mut self, millis: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FeeParams` is never constructed
[INFO] [stdout]  --> src/fees.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct FeeParams {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FEE_PARAMS` is never used
[INFO] [stdout]   --> src/fees.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const FEE_PARAMS: FeeParams = FeeParams {
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FeeState` is never constructed
[INFO] [stdout]   --> src/fees.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct FeeState { 
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_defaults` is never used
[INFO] [stdout]   --> src/fees.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl FeeState { 
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 58 |     pub fn from_defaults() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Lane` is never used
[INFO] [stdout]   --> src/fees.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub enum Lane { Exec, Commit, Avail }
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lane_base` is never used
[INFO] [stdout]   --> src/fees.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub fn lane_base(f: &FeeState, lane: Lane) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FeeSplitBps` is never constructed
[INFO] [stdout]   --> src/fees.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub struct FeeSplitBps {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FEE_SPLIT` is never used
[INFO] [stdout]   --> src/fees.rs:85:11
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub const FEE_SPLIT: FeeSplitBps = FeeSplitBps {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_amount` is never used
[INFO] [stdout]   --> src/fees.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn split_amount(amount: u64) -> (u64 /*burn*/, u64 /*proposer*/, u64 /*treasury*/) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_commit_base` is never used
[INFO] [stdout]    --> src/fees.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn update_commit_base(prev_base: u64, commits_used: u32) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_exec_base` is never used
[INFO] [stdout]    --> src/fees.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn update_exec_base(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PendingVoteRetry` is never constructed
[INFO] [stdout]   --> src/node.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct PendingVoteRetry {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StateBalanceView` is never constructed
[INFO] [stdout]   --> src/node.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct StateBalanceView<'a> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelectedIds` is never constructed
[INFO] [stdout]   --> src/node.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct SelectedIds {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BuiltBlock` is never constructed
[INFO] [stdout]   --> src/node.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct BuiltBlock {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProduceError` is never used
[INFO] [stdout]   --> src/node.rs:58:10
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub enum ProduceError {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PacemakerConfig` is never constructed
[INFO] [stdout]   --> src/node.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct PacemakerConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConsensusConfig` is never constructed
[INFO] [stdout]   --> src/node.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct ConsensusConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/node.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct Node {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeStateView` is never constructed
[INFO] [stdout]    --> src/node.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 125 | struct NodeStateView<'a> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/node.rs:170:19
[INFO] [stdout]      |
[INFO] [stdout] 167  | impl Node {
[INFO] [stdout]      | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 170  |     pub(crate) fn leader_for_view(&self, view: u64) -> ValidatorId {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176  |     fn now_ms() -> u128 { (Self::now_ts() as u128) * 1000 }
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 177  |
[INFO] [stdout] 178  |     fn schedule_vote_retry(&mut self, vote: Vote, leader_id: ValidatorId, delay_ms: u64) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183  |     fn process_pending_vote_retries(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212  |     pub fn new(mempool: Arc<MempoolImpl>, signer: SigningKey) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 242  |     pub fn new_with_consensus(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338  |     fn collect_active_bls_pubkeys_in_order(&self) -> Result<Vec<[u8;48]>> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355  |     fn resolve_my_validator_id(&self) -> Result<ValidatorId> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 367  |     fn load_best_qc_from_store(&self) -> Result<Option<QC>> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371  |     pub fn align_clock_for_test(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 380  |     pub fn set_vrf_signer(&mut self, vrf: SchnorrkelVrfSigner) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385  |     pub fn with_vrf_signer(mut self, vrf: SchnorrkelVrfSigner) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 391  |     pub fn set_consensus_network(&mut self, network: ConsensusNetwork) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396  |     pub fn consensus_network(&self) -> Option<&ConsensusNetwork> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 401  |     pub fn hotstuff_mut(&mut self) -> Option<&mut HotStuff> {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406  |     pub fn hotstuff(&self) -> Option<&HotStuff> {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 411  |     pub fn set_hotstuff(&mut self, hotstuff: HotStuff) {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 416  |     fn apply_committed_block(&mut self, commit_id: Hash) -> Result<(), String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 514  |     fn request_block(&mut self, block_id: Hash) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 523  |     fn header_eligibility_check(&self, header: &crate::types::BlockHeader) -> Result<(), String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 559  |     pub fn header_is_eligible(&self, header: &crate::types::BlockHeader) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 564  |     fn try_apply_pending_commits(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 591  |     pub fn process_consensus_messages(&mut self) -> Result<Vec<Hash>, String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 682  |     pub fn process_consensus_message(&mut self, msg: crate::p2p::ConsensusMessage) -> Result<Vec<Hash>, String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 755  |     fn handle_proposal(&mut self, block: &Block, sender_id: ValidatorId) -> Result<(), String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 873  |     fn handle_vote(&mut self, vote: Vote, sender_id: ValidatorId) -> Result<Option<Hash>, String> {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 900  |     fn handle_qc(&mut self, qc: QC, sender_id: ValidatorId) -> Result<Option<Hash>, String> {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 944  |     fn handle_view_change(&mut self, view: u64, sender_id: ValidatorId, timeout_qc: Option<QC>) -> Result<(), String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 973  |     pub fn check_pacemaker_timeout(&mut self) -> Result<(), String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1059 |     fn my_vrf_pubkey(&self) -> [u8; 32] {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1066 |     pub fn install_self_as_genesis_validator(&mut self, id: ValidatorId, stake: u128) -> BlsSigner {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1073 |     pub fn install_self_as_genesis_validator_with_key(&mut self, id: ValidatorId, stake: u128, bls_key: &[u8; 32]) -> BlsSigner {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1098 |     pub fn init_with_shared_validator_set(&mut self, validators: Vec<Validator>, my_bls_signer: BlsSigner) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1112 |     fn now_ts() -> u64 {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1118 |     fn my_validator_id(&self) -> Option<ValidatorId> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1127 |     fn derive_block_randomness(&self, next_height: u64, slot: u64) -> [u8; 32] {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1137 |     pub fn height(&self) -> u64 {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1141 |     pub fn tip_hash(&self) -> Hash {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1145 |     pub fn proposer_pubkey(&self) -> [u8; 32] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1149 |     pub fn fee_state(&self) -> &FeeState {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1154 |     pub fn current_slot(&self) -> u64 { self.chain.current_slot() }
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1157 |     pub fn slot_ms(&self) -> u64 { self.chain.clock.slot_ms }
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1160 |     pub fn set_slot_ms(&mut self, ms: u64) { self.chain.clock.slot_ms = ms; }
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1164 |     pub fn expected_leader_for_next_block(&self) -> Option<ValidatorId> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1171 |     pub fn set_commit_fee_base(&mut self, base: u64) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1175 |     pub fn burned_total(&self) -> u64 {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1179 |     pub fn balance_of(&self, who: &str) -> u64 {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1183 |     pub fn set_balance(&mut self, who: String, amount: u64) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1187 |     pub fn rpc_insert_commit(&self, commit: CommitTx, fee_bid: u128) -> Result<TxId, AdmissionError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1198 |     pub fn rpc_insert_avail(&self, avail: AvailTx, fee_bid: u128) -> Result<TxId, AdmissionError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1209 |     pub fn rpc_insert_reveal(&self, reveal: RevealTx, fee_bid: u128) -> Result<TxId, AdmissionError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1222 |     pub fn credit_balance_direct(&mut self, addr: &str, amount: u64) -> u64 {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1237 |     fn simulate_block(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1495 |     pub fn produce_block(
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1621 |     pub fn debug_hotstuff_aggregators(&self) -> Option<Vec<(u64, Hash, usize, usize)>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1629 |     pub fn debug_parent_index_len(&self) -> Option<usize> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1634 |     pub fn debug_parent_index_sample(&self, limit: usize) -> Option<Vec<(Hash, Hash)>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1639 |     pub fn debug_block_store_sample(&self, limit: usize) -> Vec<(Hash, u64, u64, Hash, u64)> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1648 |     pub fn debug_pending_commits(&self) -> Vec<Hash> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1653 |     pub fn debug_last_proposed_view(&self) -> Option<u64> { self.last_proposed_view }
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1656 |     pub fn debug_mempool_counts(&self) -> (usize, usize, usize) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1661 |     pub fn debug_last_apply_error(&self) -> Option<String> { self.last_apply_error.clone() }
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1662 |
[INFO] [stdout] 1663 |     pub fn debug_last_vote_skip_reason(&self) -> Option<String> { self.last_vote_skip_reason.clone() }
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1664 |     pub fn debug_last_vote_skip_view(&self) -> Option<u64> { self.last_vote_skip_view }
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1667 |     pub fn debug_block_store_len(&self) -> usize { self.block_store.len() }
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_SLOT_MS` is never used
[INFO] [stdout]   --> src/chain.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const DEFAULT_SLOT_MS: u64 = 500;       // 0.5s slots for dev
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_EPOCH_SLOTS` is never used
[INFO] [stdout]   --> src/chain.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const DEFAULT_EPOCH_SLOTS: u64 = 1_024; // power-of-two for easy math
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_BUNDLE_LEN` is never used
[INFO] [stdout]   --> src/chain.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub const DEFAULT_BUNDLE_LEN: u8 = 4;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_TAU` is never used
[INFO] [stdout]   --> src/chain.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const DEFAULT_TAU: f64 = 0.5;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Chain` is never constructed
[INFO] [stdout]   --> src/chain.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct Chain {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RegistryEntry` is never constructed
[INFO] [stdout]   --> src/chain.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct RegistryEntry {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ApplyResult` is never constructed
[INFO] [stdout]   --> src/chain.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct ApplyResult {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/chain.rs:79:12
[INFO] [stdout]     |
[INFO] [stdout] 78  | impl Chain {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 79  |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn now_ts(&self) -> u128 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn current_slot_at(&self, now_ms: u128) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn current_slot(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn init_genesis(&mut self, set: ValidatorSet, seed: [u8; 32]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn verify_header_proposer(&mut self, header: &crate::types::BlockHeader) -> Result<(), BlockError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     pub fn on_epoch_transition(&mut self, new_set: ValidatorSet, new_seed: [u8; 32]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub fn record_leader_miss(&mut self, vid: ValidatorId) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 326 |     fn adjust_validator_set_with_penalties(&self, set: &ValidatorSet) -> ValidatorSet {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     pub fn next_epoch_seed(&self, last_epoch_accumulator: [u8; 32]) -> [u8; 32] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn update_randomness_with_block(&mut self, header: &crate::types::BlockHeader) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn apply_block(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 592 |     fn build_set_from_registry(&self, epoch: u64) -> ValidatorSet {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 614 |     pub fn commit_simulated_block(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 771 |     pub fn commit_on_chain(&self, c: &Hash) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 776 |     pub fn avail_on_chain(&self, c: &Hash) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 781 |     pub fn avail_allowed_at(&self, height: u64, c: &Hash) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 792 |     pub fn commitments_due_and_available(&self, height: u64) -> Vec<Hash> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 |     pub fn add_threshold_share(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 830 |     pub fn get_threshold_shares(&self, commitment: &Hash) -> Option<&Vec<crate::mempool::encrypted::ThresholdShare>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 835 |     pub fn remove_threshold_shares(&mut self, commitment: &Hash) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 840 |     pub fn can_decrypt_commitment(&self, commitment: &Hash) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 850 |     pub fn cleanup_old_shares(&mut self, commitments: &crate::state::Commitments) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 860 |     fn collect_bls_pubkeys_snapshot(&self) -> Result<Vec<[u8; 48]>, BlockError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 879 |     pub fn apply_slash(&mut self, evidence: &SlashingEvidence, cfg: &StakingConfig) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_roots_for` is never used
[INFO] [stdout]   --> src/verify.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn compute_roots_for(block: &Block, batches: &BatchStore, receipts: &[Receipt]) -> (Hash, Hash, Hash) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_block_roots` is never used
[INFO] [stdout]   --> src/verify.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn verify_block_roots(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ValidatorStatus` is never used
[INFO] [stdout]  --> src/pos/registry.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum ValidatorStatus { Active, Inactive, Jailed }
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Validator` is never constructed
[INFO] [stdout]   --> src/pos/registry.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Validator {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StakingConfig` is never constructed
[INFO] [stdout]   --> src/pos/registry.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct StakingConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ValidatorSet` is never constructed
[INFO] [stdout]   --> src/pos/registry.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct ValidatorSet {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PosError` is never used
[INFO] [stdout]   --> src/pos/registry.rs:35:10
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub enum PosError {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/pos/registry.rs:50:12
[INFO] [stdout]     |
[INFO] [stdout] 42  | impl ValidatorSet {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50  |     pub fn from_genesis(epoch: u64, cfg: &StakingConfig, mut vals: Vec<Validator>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93  |     pub fn get(&self, id: ValidatorId) -> Option<&Validator> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     fn get_mut(&mut self, id: ValidatorId) -> Option<&mut Validator> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn index_of(&self, id: ValidatorId) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn total_stake(&self) -> u128 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn bond(&mut self, id: ValidatorId, amount: u128, _cfg: &StakingConfig) -> Result<(), PosError> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn unbond(&mut self, id: ValidatorId, amount: u128, cfg: &StakingConfig) -> Result<(), PosError> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn activate(&mut self, id: ValidatorId) -> Result<(), PosError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn deactivate(&mut self, id: ValidatorId) -> Result<(), PosError> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn jail(&mut self, id: ValidatorId) -> Result<(), PosError> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     fn recompute_total_stake(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ProposerSchedule` is never used
[INFO] [stdout]  --> src/pos/schedule.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub trait ProposerSchedule {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AliasSchedule` is never constructed
[INFO] [stdout]   --> src/pos/schedule.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct AliasSchedule {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/pos/schedule.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl AliasSchedule {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 46 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `bump`, `next_u64`, and `next_u128` are never used
[INFO] [stdout]    --> src/pos/schedule.rs:149:16
[INFO] [stdout]     |
[INFO] [stdout] 148 |         impl HashRng {
[INFO] [stdout]     |         ------------ associated items in this implementation
[INFO] [stdout] 149 |             fn new(seed: [u8; 32]) -> Self { Self { state: seed, ctr: 0 } }
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 150 |             #[inline]
[INFO] [stdout] 151 |             fn bump(&mut self) {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |             fn next_u64(&mut self) -> u64 {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |             fn next_u128(&mut self) -> u128 {
[INFO] [stdout]     |                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SlotClock` is never constructed
[INFO] [stdout]  --> src/pos/slots.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct SlotClock {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `current_slot`, `current_epoch`, `slot_start_unix`, `slot_in_epoch`, and `bundle_start` are never used
[INFO] [stdout]   --> src/pos/slots.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl SlotClock {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn current_slot(&self, now_unix_ms: u128) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn current_epoch(&self, slot: u64) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn slot_start_unix(&self, slot: u64) -> u128 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn slot_in_epoch(&self, slot: u64) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn bundle_start(&self, slot: u64, bundle_len: u8) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `P2PBehaviour` is never constructed
[INFO] [stdout]   --> src/p2p.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct P2PBehaviour {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/p2p.rs:71:15
[INFO] [stdout]    |
[INFO] [stdout] 71 |     Gossipsub(gossipsub::Event),
[INFO] [stdout]    |     --------- ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 71 -     Gossipsub(gossipsub::Event),
[INFO] [stdout] 71 +     Gossipsub(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/p2p.rs:72:10
[INFO] [stdout]    |
[INFO] [stdout] 72 |     Mdns(mdns::Event),
[INFO] [stdout]    |     ---- ^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 72 -     Mdns(mdns::Event),
[INFO] [stdout] 72 +     Mdns(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/p2p.rs:73:14
[INFO] [stdout]    |
[INFO] [stdout] 73 |     Identify(identify::Event),
[INFO] [stdout]    |     -------- ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 73 -     Identify(identify::Event),
[INFO] [stdout] 73 +     Identify(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/p2p.rs:74:10
[INFO] [stdout]    |
[INFO] [stdout] 74 |     Ping(ping::Event),
[INFO] [stdout]    |     ---- ^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 74 -     Ping(ping::Event),
[INFO] [stdout] 74 +     Ping(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/p2p.rs:75:14
[INFO] [stdout]    |
[INFO] [stdout] 75 |     Kademlia(kad::Event),
[INFO] [stdout]    |     -------- ^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 75 -     Kademlia(kad::Event),
[INFO] [stdout] 75 +     Kademlia(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `P2PConfig` is never constructed
[INFO] [stdout]    --> src/p2p.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub struct P2PConfig {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConsensusNetwork` is never constructed
[INFO] [stdout]    --> src/p2p.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub struct ConsensusNetwork {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NetworkCommand` is never used
[INFO] [stdout]    --> src/p2p.rs:160:6
[INFO] [stdout]     |
[INFO] [stdout] 160 | enum NetworkCommand {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/p2p.rs:170:18
[INFO] [stdout]     |
[INFO] [stdout] 168 | impl ConsensusNetwork {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 169 |     /// Create a new consensus network instance with P2P
[INFO] [stdout] 170 |     pub async fn new(validator_id: ValidatorId, config: P2PConfig) -> Result<Self> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     pub fn connect_peer(&self, addr: Multiaddr) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn broadcast_proposal(&self, block: Block, parent: Option<Block>) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 347 |     pub fn send_vote(&self, vote: Vote, leader_id: ValidatorId) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 369 |     pub fn broadcast_qc(&self, qc: QC) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 |     pub fn broadcast_block_request(&self, block_id: Hash) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     pub fn broadcast_block_response(&self, block: Block) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 395 |     pub fn broadcast_view_change(&self, view: u64, timeout_qc: Option<QC>) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 413 |     pub fn try_recv_message(&self) -> Option<ConsensusMessage> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 431 |     pub fn subscribe(&self) -> broadcast::Receiver<ConsensusMessage> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 436 |     fn send_to_validator(&self, validator_id: ValidatorId, msg: ConsensusMessage) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 443 |     fn broadcast_message(&self, msg: ConsensusMessage) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 450 |     pub fn validator_id(&self) -> ValidatorId {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 455 |     pub fn peer_id(&self) -> PeerId {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 460 |     pub fn connected_peers(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 465 |     pub fn peer_ids(&self) -> Vec<PeerId> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 470 |     pub fn install_direct_peers(&self, map: HashMap<ValidatorId, broadcast::Sender<ConsensusMessage>>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 475 |     pub fn broadcast_slash_evidence(&self, evidence: SlashingEvidence) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetworkTask` is never constructed
[INFO] [stdout]    --> src/p2p.rs:490:8
[INFO] [stdout]     |
[INFO] [stdout] 490 | struct NetworkTask {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/p2p.rs:505:14
[INFO] [stdout]     |
[INFO] [stdout] 504 | impl NetworkTask {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 505 |     async fn run(mut self) {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 529 |     async fn handle_command(&mut self, command: NetworkCommand) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 561 |     async fn handle_swarm_event(&mut self, event: SwarmEvent<P2PEvent>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 616 |     async fn handle_gossipsub_message(&mut self, source: PeerId, message: gossipsub::Message) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 639 |     async fn broadcast_consensus_message(&mut self, msg: ConsensusMessage) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 661 |     async fn send_to_validator(&mut self, _validator_id: ValidatorId, msg: ConsensusMessage) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 666 |     async fn check_and_discover(&mut self) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 675 |     async fn run_discovery_round(&mut self) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_network` is never used
[INFO] [stdout]    --> src/p2p.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn create_test_network(validator_ids: Vec<ValidatorId>) -> Result<Vec<ConsensusNetwork>, anyhow::Error> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/node.rs:929:13
[INFO] [stdout]     |
[INFO] [stdout] 929 |             drop(hs);
[INFO] [stdout]     |             ^^^^^--^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  argument has type `&mut HotStuff`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 929 -             drop(hs);
[INFO] [stdout] 929 +             let _ = hs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/node.rs:962:17
[INFO] [stdout]     |
[INFO] [stdout] 962 |                 drop(hotstuff);
[INFO] [stdout]     |                 ^^^^^--------^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      argument has type `&mut HotStuff`
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 962 -                 drop(hotstuff);
[INFO] [stdout] 962 +                 let _ = hotstuff;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]     --> src/node.rs:1015:25
[INFO] [stdout]      |
[INFO] [stdout] 1015 |                         drop(hs2);
[INFO] [stdout]      |                         ^^^^^---^
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              argument has type `&mut HotStuff`
[INFO] [stdout]      |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]      |
[INFO] [stdout] 1015 -                         drop(hs2);
[INFO] [stdout] 1015 +                         let _ = hs2;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 8m 25s
[INFO] running `Command { std: "docker" "inspect" "dba95ada4186e27862c162a807406c696e2978c7b0c1bef982eacab22aa47931", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dba95ada4186e27862c162a807406c696e2978c7b0c1bef982eacab22aa47931", kill_on_drop: false }`
[INFO] [stdout] dba95ada4186e27862c162a807406c696e2978c7b0c1bef982eacab22aa47931
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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 -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 43732fa67dad2f8d732b5ffc4becd57b03c1c21ee45b6e4a1602bdf61eaa44f0
[INFO] running `Command { std: "docker" "start" "-a" "43732fa67dad2f8d732b5ffc4becd57b03c1c21ee45b6e4a1602bdf61eaa44f0", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.0.8
[INFO] [stderr]    Compiling bitflags v2.9.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stdout] warning: unused import: `BlsAggregate`
[INFO] [stdout]  --> src/types.rs:5:49
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{codec::qc_commitment, crypto::bls::{BlsAggregate, BlsSignatureBytes}, pos::registry::ValidatorId, mempool::encrypted::Thresho...
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `header_bytes`
[INFO] [stdout]  --> src/chain.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::codec::{header_bytes, header_signing_bytes, qc_commitment};
[INFO] [stdout]   |                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlockHeader`
[INFO] [stdout]   --> src/chain.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::types::{Block, BlockHeader, Event, Hash, Receipt, SlashingEvidence, Address};
[INFO] [stdout]    |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mempool::encrypted::ThresholdCiphertext`
[INFO] [stdout]  --> src/verify.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     mempool::encrypted::ThresholdCiphertext,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `header_bytes`
[INFO] [stdout]   --> src/stf.rs:13:50
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::codec::{tx_enum_bytes, receipt_bytes, header_bytes, tx_bytes};
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StateKey`
[INFO] [stdout]   --> src/stf.rs:17:81
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::types::{Block, Receipt, ExecOutcome, Hash, BlockHeader, Transaction, StateKey, Tx, Event, RevealTx, CommitTx, AccessList, Addr...
[INFO] [stdout]    |                                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AccessList`
[INFO] [stdout]    --> src/stf.rs:339:24
[INFO] [stdout]     |
[INFO] [stdout] 339 |     use crate::types::{AccessList, StateKey};
[INFO] [stdout]     |                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlsSignatureBytes`
[INFO] [stdout]  --> src/node.rs:3:48
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::crypto::bls::{verify_qc, BlsSigner, BlsSignatureBytes, BlsAggregate, vote_msg};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mempool::encrypted::ThresholdCiphertext`
[INFO] [stdout]   --> src/node.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::mempool::encrypted::ThresholdCiphertext;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::cmp::Ordering`
[INFO] [stdout]  --> src/pos/registry.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::cmp::Ordering;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/rpc.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::node::Node`
[INFO] [stdout]  --> src/rpc.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::node::Node;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/p2p.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::upgrade`
[INFO] [stdout]   --> src/p2p.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     core::upgrade,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `day`
[INFO] [stdout]    --> src/rpc.rs:436:14
[INFO] [stdout]     |
[INFO] [stdout] 436 |         let (day, used) = *limiter.book.get(&key).unwrap();
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_day`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commitment`
[INFO] [stdout]    --> src/chain.rs:507:49
[INFO] [stdout]     |
[INFO] [stdout] 507 |                 Event::ThresholdShareReceived { commitment, validator_id: _ } => {
[INFO] [stdout]     |                                                 ^^^^^^^^^^ help: try ignoring the field: `commitment: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commitment`
[INFO] [stdout]    --> src/chain.rs:699:49
[INFO] [stdout]     |
[INFO] [stdout] 699 |                 Event::ThresholdShareReceived { commitment, validator_id: _ } => {
[INFO] [stdout]     |                                                 ^^^^^^^^^^ help: try ignoring the field: `commitment: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/node.rs:493:17
[INFO] [stdout]     |
[INFO] [stdout] 493 |                 _ => {}
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/node.rs:493:17
[INFO] [stdout]     |
[INFO] [stdout] 485 |                 Tx::Commit(c) => {
[INFO] [stdout]     |                 ------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 489 |                 Tx::Avail(a) => {
[INFO] [stdout]     |                 ------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 493 |                 _ => {}
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:755:50
[INFO] [stdout]     |
[INFO] [stdout] 755 |     fn handle_proposal(&mut self, block: &Block, sender_id: ValidatorId) -> Result<(), String> {
[INFO] [stdout]     |                                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:873:43
[INFO] [stdout]     |
[INFO] [stdout] 873 |     fn handle_vote(&mut self, vote: Vote, sender_id: ValidatorId) -> Result<Option<Hash>, String> {
[INFO] [stdout]     |                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/node.rs:926:17
[INFO] [stdout]     |
[INFO] [stdout] 926 |             let n = hs.validator_pks.len();
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:900:37
[INFO] [stdout]     |
[INFO] [stdout] 900 |     fn handle_qc(&mut self, qc: QC, sender_id: ValidatorId) -> Result<Option<Hash>, String> {
[INFO] [stdout]     |                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:944:49
[INFO] [stdout]     |
[INFO] [stdout] 944 |     fn handle_view_change(&mut self, view: u64, sender_id: ValidatorId, timeout_qc: Option<QC>) -> Result<(), String> {
[INFO] [stdout]     |                                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `am_consensus_leader`
[INFO] [stdout]     --> src/node.rs:1287:13
[INFO] [stdout]      |
[INFO] [stdout] 1287 |         let am_consensus_leader: bool = if let Some(hs) = self.hotstuff.as_ref() {
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_am_consensus_leader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/node.rs:1382:13
[INFO] [stdout]      |
[INFO] [stdout] 1382 |         let mut header = crate::types::BlockHeader {
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CIPHERTEXT_SIZE` is never used
[INFO] [stdout]   --> src/mempool/encrypted.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const CIPHERTEXT_SIZE: usize = 48 + 96; // G1 point (48) + G2 signature (96)
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `pending_len` is never used
[INFO] [stdout]   --> src/consensus/mod.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl VoteAggregator {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 51 |     fn pending_len(&self) -> usize { self.pending_indices.len() }
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hex48` is never used
[INFO] [stdout]    --> src/rpc.rs:149:4
[INFO] [stdout]     |
[INFO] [stdout] 149 | fn hex48(s: &str) -> [u8; 48] {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/p2p.rs:74:10
[INFO] [stdout]    |
[INFO] [stdout] 74 |     Ping(ping::Event),
[INFO] [stdout]    |     ---- ^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 74 -     Ping(ping::Event),
[INFO] [stdout] 74 +     Ping(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/p2p.rs:75:14
[INFO] [stdout]    |
[INFO] [stdout] 75 |     Kademlia(kad::Event),
[INFO] [stdout]    |     -------- ^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 75 -     Kademlia(kad::Event),
[INFO] [stdout] 75 +     Kademlia(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `validator_to_peer` and `use_gossip_fallback` are never read
[INFO] [stdout]    --> src/p2p.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub struct ConsensusNetwork {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 147 |     validator_to_peer: Arc<Mutex<HashMap<ValidatorId, PeerId>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     use_gossip_fallback: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConsensusNetwork` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `GetConnectedPeers` and `TriggerDiscovery` are never constructed
[INFO] [stdout]    --> src/p2p.rs:164:5
[INFO] [stdout]     |
[INFO] [stdout] 160 | enum NetworkCommand {
[INFO] [stdout]     |      -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 164 |     GetConnectedPeers,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 165 |     TriggerDiscovery,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NetworkCommand` 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 `target_peers` and `max_peers` are never read
[INFO] [stdout]    --> src/p2p.rs:499:5
[INFO] [stdout]     |
[INFO] [stdout] 490 | struct NetworkTask {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 499 |     target_peers: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 500 |     max_peers: usize,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/node.rs:929:13
[INFO] [stdout]     |
[INFO] [stdout] 929 |             drop(hs);
[INFO] [stdout]     |             ^^^^^--^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  argument has type `&mut HotStuff`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 929 -             drop(hs);
[INFO] [stdout] 929 +             let _ = hs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/node.rs:962:17
[INFO] [stdout]     |
[INFO] [stdout] 962 |                 drop(hotstuff);
[INFO] [stdout]     |                 ^^^^^--------^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      argument has type `&mut HotStuff`
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 962 -                 drop(hotstuff);
[INFO] [stdout] 962 +                 let _ = hotstuff;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]     --> src/node.rs:1015:25
[INFO] [stdout]      |
[INFO] [stdout] 1015 |                         drop(hs2);
[INFO] [stdout]      |                         ^^^^^---^
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              argument has type `&mut HotStuff`
[INFO] [stdout]      |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]      |
[INFO] [stdout] 1015 -                         drop(hs2);
[INFO] [stdout] 1015 +                         let _ = hs2;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlsAggregate`
[INFO] [stdout]  --> src/types.rs:5:49
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{codec::qc_commitment, crypto::bls::{BlsAggregate, BlsSignatureBytes}, pos::registry::ValidatorId, mempool::encrypted::Thresho...
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `header_bytes`
[INFO] [stdout]   --> src/stf.rs:13:50
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::codec::{tx_enum_bytes, receipt_bytes, header_bytes, tx_bytes};
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StateKey`
[INFO] [stdout]   --> src/stf.rs:17:81
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::types::{Block, Receipt, ExecOutcome, Hash, BlockHeader, Transaction, StateKey, Tx, Event, RevealTx, CommitTx, AccessList, Addr...
[INFO] [stdout]    |                                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AccessList`
[INFO] [stdout]    --> src/stf.rs:339:24
[INFO] [stdout]     |
[INFO] [stdout] 339 |     use crate::types::{AccessList, StateKey};
[INFO] [stdout]     |                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ThresholdCiphertext` and `ThresholdShare`
[INFO] [stdout]   --> src/mempool/mod.rs:15:38
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use encrypted::{ThresholdEngine, ThresholdCiphertext, ThresholdShare, ThresholdError};
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlsSignatureBytes`
[INFO] [stdout]  --> src/node.rs:3:48
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::crypto::bls::{verify_qc, BlsSigner, BlsSignatureBytes, BlsAggregate, vote_msg};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::mempool::encrypted::ThresholdCiphertext`
[INFO] [stdout]   --> src/node.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::mempool::encrypted::ThresholdCiphertext;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `header_bytes`
[INFO] [stdout]  --> src/chain.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::codec::{header_bytes, header_signing_bytes, qc_commitment};
[INFO] [stdout]   |                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlockHeader`
[INFO] [stdout]   --> src/chain.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::types::{Block, BlockHeader, Event, Hash, Receipt, SlashingEvidence, Address};
[INFO] [stdout]    |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mempool::encrypted::ThresholdCiphertext`
[INFO] [stdout]  --> src/verify.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     mempool::encrypted::ThresholdCiphertext,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::cmp::Ordering`
[INFO] [stdout]  --> src/pos/registry.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::cmp::Ordering;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/p2p.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::upgrade`
[INFO] [stdout]   --> src/p2p.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     core::upgrade,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/node.rs:493:17
[INFO] [stdout]     |
[INFO] [stdout] 493 |                 _ => {}
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/node.rs:493:17
[INFO] [stdout]     |
[INFO] [stdout] 485 |                 Tx::Commit(c) => {
[INFO] [stdout]     |                 ------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 489 |                 Tx::Avail(a) => {
[INFO] [stdout]     |                 ------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 493 |                 _ => {}
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:755:50
[INFO] [stdout]     |
[INFO] [stdout] 755 |     fn handle_proposal(&mut self, block: &Block, sender_id: ValidatorId) -> Result<(), String> {
[INFO] [stdout]     |                                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:873:43
[INFO] [stdout]     |
[INFO] [stdout] 873 |     fn handle_vote(&mut self, vote: Vote, sender_id: ValidatorId) -> Result<Option<Hash>, String> {
[INFO] [stdout]     |                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/node.rs:926:17
[INFO] [stdout]     |
[INFO] [stdout] 926 |             let n = hs.validator_pks.len();
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:900:37
[INFO] [stdout]     |
[INFO] [stdout] 900 |     fn handle_qc(&mut self, qc: QC, sender_id: ValidatorId) -> Result<Option<Hash>, String> {
[INFO] [stdout]     |                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:944:49
[INFO] [stdout]     |
[INFO] [stdout] 944 |     fn handle_view_change(&mut self, view: u64, sender_id: ValidatorId, timeout_qc: Option<QC>) -> Result<(), String> {
[INFO] [stdout]     |                                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `am_consensus_leader`
[INFO] [stdout]     --> src/node.rs:1287:13
[INFO] [stdout]      |
[INFO] [stdout] 1287 |         let am_consensus_leader: bool = if let Some(hs) = self.hotstuff.as_ref() {
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_am_consensus_leader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/node.rs:1382:13
[INFO] [stdout]      |
[INFO] [stdout] 1382 |         let mut header = crate::types::BlockHeader {
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commitment`
[INFO] [stdout]    --> src/chain.rs:507:49
[INFO] [stdout]     |
[INFO] [stdout] 507 |                 Event::ThresholdShareReceived { commitment, validator_id: _ } => {
[INFO] [stdout]     |                                                 ^^^^^^^^^^ help: try ignoring the field: `commitment: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commitment`
[INFO] [stdout]    --> src/chain.rs:699:49
[INFO] [stdout]     |
[INFO] [stdout] 699 |                 Event::ThresholdShareReceived { commitment, validator_id: _ } => {
[INFO] [stdout]     |                                                 ^^^^^^^^^^ help: try ignoring the field: `commitment: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hex32` is never used
[INFO] [stdout]   --> src/main.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn hex32(h: &Hash) -> String { hex::encode(h) }
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `transfer` are never used
[INFO] [stdout]   --> src/types.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl Transaction {
[INFO] [stdout]    | ---------------- associated functions in this implementation
[INFO] [stdout] 20 |     pub fn new(from: impl Into<Address>, to: impl Into<Address>, amount: u64, nonce: u64, access_list: AccessList) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn transfer(from: impl Into<Address>, to: impl Into<Address>, amount: u64, nonce: u64) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new_with_reveals` and `new` are never used
[INFO] [stdout]   --> src/types.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Block {
[INFO] [stdout]    | ---------- associated functions in this implementation
[INFO] [stdout] 43 |     pub fn new_with_reveals(txs: Vec<Tx>, reveals: Vec<RevealTx>, mut header: BlockHeader, justify_qc: QC) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn new(txs: Vec<Tx>, header: BlockHeader, justify_qc: QC) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExecOutcome` is never used
[INFO] [stdout]   --> src/types.rs:59:10
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub enum ExecOutcome {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Receipt` is never constructed
[INFO] [stdout]   --> src/types.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct Receipt {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pacemaker` is never constructed
[INFO] [stdout]   --> src/types.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct Pacemaker {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `on_enter_view`, `expired`, `bump_backoff`, and `observe_qc_latency` are never used
[INFO] [stdout]    --> src/types.rs:95:12
[INFO] [stdout]     |
[INFO] [stdout] 94  | impl Pacemaker {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 95  |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn on_enter_view(&mut self, now_ms: u128) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn expired(&self, now_ms: u128) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn bump_backoff(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn observe_qc_latency(&mut self, sample_ms: u64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HotStuffState` is never constructed
[INFO] [stdout]    --> src/types.rs:201:12
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub struct HotStuffState {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key_order` is never used
[INFO] [stdout]    --> src/types.rs:273:4
[INFO] [stdout]     |
[INFO] [stdout] 273 | fn key_order<'a>(k: &'a StateKey) -> (u8, &'a str) {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `canonicalize`, `for_transfer`, `contains_sorted`, `covers`, `require_sender_balance_rw`, and `require_sender_nonce_rw` are never used
[INFO] [stdout]    --> src/types.rs:282:12
[INFO] [stdout]     |
[INFO] [stdout] 280 | impl AccessList {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 281 |     /// Sort + dedup in-place to canonical form.
[INFO] [stdout] 282 |     pub fn canonicalize(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn for_transfer(from: &Address, to: &Address) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     fn contains_sorted(slice: &[StateKey], key: &StateKey) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 315 |     pub fn covers(&self, required: &[StateKey]) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     pub fn require_sender_balance_rw(&self, sender: &Address) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn require_sender_nonce_rw(&self, sender: &Address) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommitmentMeta` is never constructed
[INFO] [stdout]    --> src/types.rs:381:12
[INFO] [stdout]     |
[INFO] [stdout] 381 | pub struct CommitmentMeta {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Event` is never used
[INFO] [stdout]    --> src/types.rs:393:10
[INFO] [stdout]     |
[INFO] [stdout] 393 | pub enum Event {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CHAIN_ID` is never used
[INFO] [stdout]  --> src/state.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const CHAIN_ID: u64 = 1;
[INFO] [stdout]   |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COMMIT_FEE` is never used
[INFO] [stdout]  --> src/state.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const COMMIT_FEE: u64 = 1;
[INFO] [stdout]   |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REVEAL_WINDOW` is never used
[INFO] [stdout]  --> src/state.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const REVEAL_WINDOW: u64 = 3;
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DECRYPTION_DELAY` is never used
[INFO] [stdout]  --> src/state.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const DECRYPTION_DELAY: u64 = 1;   // blocks after commit before reveals may start
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ZERO_ADDRESS` is never used
[INFO] [stdout]   --> src/state.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const ZERO_ADDRESS: &str = "0x0000000000000000000000000000000000000000";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TREASURY_ADDRESS` is never used
[INFO] [stdout]   --> src/state.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const TREASURY_ADDRESS: &str = "0x0000000000000000000000000000000000000001";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AVAIL_FEE` is never used
[INFO] [stdout]   --> src/state.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const AVAIL_FEE: u64 = 1;
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_AVAILS_PER_BLOCK` is never used
[INFO] [stdout]   --> src/state.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub const MAX_AVAILS_PER_BLOCK: usize = 50_000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_REVEALS_PER_BLOCK` is never used
[INFO] [stdout]   --> src/state.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const MAX_REVEALS_PER_BLOCK: usize = 50_000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PENDING_COMMITS_PER_ACCOUNT` is never used
[INFO] [stdout]   --> src/state.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const MAX_PENDING_COMMITS_PER_ACCOUNT: usize = 1_000;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_AL_READS` is never used
[INFO] [stdout]   --> src/state.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const MAX_AL_READS: usize = 256;
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_AL_WRITES` is never used
[INFO] [stdout]   --> src/state.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const MAX_AL_WRITES: usize = 256;
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Nonces` is never used
[INFO] [stdout]   --> src/state.rs:23:10
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub type Nonces = HashMap<Address, u64>;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Commitments` is never used
[INFO] [stdout]   --> src/state.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub type Commitments = HashMap<Hash, CommitmentMeta>; 
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Available` is never used
[INFO] [stdout]   --> src/state.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub type Available = HashSet<Hash>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TxError` is never used
[INFO] [stdout]   --> src/stf.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum TxError {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BlockError` is never used
[INFO] [stdout]   --> src/stf.rs:45:10
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum BlockError {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockResult` is never constructed
[INFO] [stdout]   --> src/stf.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct BlockResult { 
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BodyResult` is never constructed
[INFO] [stdout]   --> src/stf.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub struct BodyResult {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_transaction` is never used
[INFO] [stdout]    --> src/stf.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn process_transaction(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_avail` is never used
[INFO] [stdout]    --> src/stf.rs:234:8
[INFO] [stdout]     |
[INFO] [stdout] 234 | pub fn process_avail(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pending_for_owner` is never used
[INFO] [stdout]    --> src/stf.rs:321:4
[INFO] [stdout]     |
[INFO] [stdout] 321 | fn pending_for_owner(commitments: &Commitments, owner: &str) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_commit` is never used
[INFO] [stdout]    --> src/stf.rs:327:8
[INFO] [stdout]     |
[INFO] [stdout] 327 | pub fn process_commit(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_reveal` is never used
[INFO] [stdout]    --> src/stf.rs:459:4
[INFO] [stdout]     |
[INFO] [stdout] 459 | fn process_reveal(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_block` is never used
[INFO] [stdout]    --> src/stf.rs:527:8
[INFO] [stdout]     |
[INFO] [stdout] 527 | pub fn process_block(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DOM_ORDER` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const DOM_ORDER:  &[u8] = b"ORDER";
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COMMIT_DOMAIN` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const COMMIT_DOMAIN: &[u8] = b"CAR_COMMIT_V1";
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REVEAL_PAIR_DOMAIN` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const REVEAL_PAIR_DOMAIN: &[u8] = b"CAR_REVEAL_PAIR_V1";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIGN_COMMIT_DOMAIN` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const SIGN_COMMIT_DOMAIN: &[u8] = b"SIGN_COMMIT_V1";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIGN_AVAIL_DOMAIN` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const SIGN_AVAIL_DOMAIN:  &[u8] = b"SIGN_AVAIL_V1";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_hex_addr` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn is_hex_addr(s: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `addr_from_pubkey` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn addr_from_pubkey(pubkey: &[u8; 32]) -> [u8; 20] {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `addr_hex` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:37:8
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub fn addr_hex(addr: &[u8; 20]) -> Address {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_ed25519` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn verify_ed25519(pubkey: &[u8; 32], sig_bytes: &[u8; 64], msg: &[u8]) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_signing_preimage` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:57:8
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn commit_signing_preimage(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `avail_signing_preimage` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn avail_signing_preimage(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commitment_hash` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn commitment_hash(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reveal_order_key` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn reveal_order_key(commitment: &Hash, randomness: &Hash) -> Hash {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_reveal_pair` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn hash_reveal_pair(commitment: &Hash, tx_hash: &Hash) -> Hash {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:122:4
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn hash(bytes: &[u8]) -> Hash {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_bytes_sha256` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn hash_bytes_sha256(data: &[u8]) -> Hash {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parent_hash` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:140:4
[INFO] [stdout]     |
[INFO] [stdout] 140 | fn parent_hash(left: &Hash, right: &Hash) -> Hash {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merkle_root` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub fn merkle_root(leaves: &[Hash]) -> Hash {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VRF_OUTPUT_BYTES` is never used
[INFO] [stdout]  --> src/crypto/vrf.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub const VRF_OUTPUT_BYTES: usize = 32;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `VrfOutput` is never used
[INFO] [stdout]  --> src/crypto/vrf.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub type VrfOutput = [u8; VRF_OUTPUT_BYTES];
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `VrfPreOut` is never used
[INFO] [stdout]  --> src/crypto/vrf.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub type VrfPreOut = [u8; VRF_OUTPUT_BYTES];
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `VrfProof` is never used
[INFO] [stdout]  --> src/crypto/vrf.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub type VrfProof  = Vec<u8>;
[INFO] [stdout]   |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VrfPubkey` is never constructed
[INFO] [stdout]  --> src/crypto/vrf.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct VrfPubkey(pub [u8; 32]);
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `VrfSigner` is never used
[INFO] [stdout]   --> src/crypto/vrf.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait VrfSigner {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `VrfVerifier` is never used
[INFO] [stdout]   --> src/crypto/vrf.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub trait VrfVerifier {
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SchnorrkelVrfSigner` is never constructed
[INFO] [stdout]   --> src/crypto/vrf.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct SchnorrkelVrfSigner {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SchnorrkelVrf` is never constructed
[INFO] [stdout]   --> src/crypto/vrf.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct SchnorrkelVrf;
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_deterministic_seed` and `public_bytes` are never used
[INFO] [stdout]   --> src/crypto/vrf.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl SchnorrkelVrfSigner {
[INFO] [stdout]    | ------------------------ associated items in this implementation
[INFO] [stdout] 32 |     pub fn from_deterministic_seed(seed32: [u8; 32]) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn public_bytes(&self) -> [u8; 32] { self.kp.public.to_bytes() }
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_vrf_msg` is never used
[INFO] [stdout]    --> src/crypto/vrf.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn build_vrf_msg(epoch_seed: &[u8; 32], bundle_start_slot: u64, proposer_id: u64) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vrf_eligible` is never used
[INFO] [stdout]    --> src/crypto/vrf.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub fn vrf_eligible(stake: u128, total: u128, out: &VrfOutput, tau: f64) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLS_DST` is never used
[INFO] [stdout]   --> src/crypto/bls.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const BLS_DST: &[u8] = b"VORTEX-BLS-QUORUM-v1";
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VOTE_MSG_VERSION` is never used
[INFO] [stdout]   --> src/crypto/bls.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub const VOTE_MSG_VERSION: u8 = 1;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SignerBitmap` is never used
[INFO] [stdout]   --> src/crypto/bls.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub type SignerBitmap = BitVec;
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlsAggregate` is never constructed
[INFO] [stdout]   --> src/crypto/bls.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct BlsAggregate {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push`, `finalize`, `clear`, `len`, and `is_empty` are never used
[INFO] [stdout]   --> src/crypto/bls.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl BlsAggregate {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 50 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn push(&mut self, sig_bytes: &[u8; 96]) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn finalize(&self) -> Option<BlsSignatureBytes> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `vote_msg` is never used
[INFO] [stdout]    --> src/crypto/bls.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub fn vote_msg(block_id: &[u8], view: u64) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlsSigner` is never constructed
[INFO] [stdout]    --> src/crypto/bls.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct BlsSigner(mpk::SecretKey);
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_sk_bytes`, `public_key_bytes`, and `sign` are never used
[INFO] [stdout]    --> src/crypto/bls.rs:126:12
[INFO] [stdout]     |
[INFO] [stdout] 124 | impl BlsSigner {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 125 |     /// Create from 32-byte secret key.
[INFO] [stdout] 126 |     pub fn from_sk_bytes(sk: &[u8; 32]) -> Option<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn public_key_bytes(&self) -> [u8; 48] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn sign(&self, msg: &[u8]) -> BlsSignatureBytes {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_sig` is never used
[INFO] [stdout]    --> src/crypto/bls.rs:148:8
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub fn verify_sig(pk_bytes: &[u8; 48], msg: &[u8], sig: &BlsSignatureBytes) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fast_aggregate_verify` is never used
[INFO] [stdout]    --> src/crypto/bls.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub fn fast_aggregate_verify(sig: &BlsSignatureBytes, msg: &[u8], signer_pks: &[[u8; 48]]) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_signer_pks_from_bitmap` is never used
[INFO] [stdout]    --> src/crypto/bls.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub fn collect_signer_pks_from_bitmap(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_quorum` is never used
[INFO] [stdout]    --> src/crypto/bls.rs:208:8
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub fn has_quorum(n: usize, bitmap: &SignerBitmap) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BlsQcError` is never used
[INFO] [stdout]    --> src/crypto/bls.rs:217:10
[INFO] [stdout]     |
[INFO] [stdout] 217 | pub enum BlsQcError {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_qc` is never used
[INFO] [stdout]    --> src/crypto/bls.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub fn verify_qc(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BASE_FEE_PER_TX` is never used
[INFO] [stdout]  --> src/gas.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub const BASE_FEE_PER_TX: u64 = 1;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CODEC_VERSION` is never used
[INFO] [stdout]  --> src/codec.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const CODEC_VERSION: u8 = 1;
[INFO] [stdout]   |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DOM_TX` is never used
[INFO] [stdout]   --> src/codec.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const DOM_TX: &[u8] = b"TX";
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DOM_RCPT` is never used
[INFO] [stdout]   --> src/codec.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const DOM_RCPT: &[u8] = b"RCPT";
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DOM_HDR` is never used
[INFO] [stdout]   --> src/codec.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const DOM_HDR: &[u8] = b"HDR";
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_COMMIT` is never used
[INFO] [stdout]   --> src/codec.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const TAG_COMMIT: u8 = 1;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_AVAIL` is never used
[INFO] [stdout]   --> src/codec.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const TAG_AVAIL: u8 = 2;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `QC_COMMIT_VERSION` is never used
[INFO] [stdout]   --> src/codec.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const QC_COMMIT_VERSION: u8 = 1;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_bitmap_lsb0` is never used
[INFO] [stdout]   --> src/codec.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn encode_bitmap_lsb0(bitmap: &SignerBitmap) -> Vec<u8> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `qc_commitment` is never used
[INFO] [stdout]   --> src/codec.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn qc_commitment(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_u64` is never used
[INFO] [stdout]   --> src/codec.rs:56:8
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub fn put_u64(dst: &mut Vec<u8>, x: u64) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_u32` is never used
[INFO] [stdout]   --> src/codec.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn put_u32(v: &mut Vec<u8>, x: u32) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_str` is never used
[INFO] [stdout]   --> src/codec.rs:65:4
[INFO] [stdout]    |
[INFO] [stdout] 65 | fn put_str(dst: &mut Vec<u8>, s: &str) {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string_bytes` is never used
[INFO] [stdout]   --> src/codec.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub fn string_bytes(s: &str) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `access_list_bytes` is never used
[INFO] [stdout]   --> src/codec.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn access_list_bytes(al: &AccessList) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tx_bytes` is never used
[INFO] [stdout]   --> src/codec.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn tx_bytes(tx: &Transaction) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `receipt_bytes` is never used
[INFO] [stdout]   --> src/codec.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub fn receipt_bytes(r: &Receipt) -> Vec<u8> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_access_list` is never used
[INFO] [stdout]    --> src/codec.rs:122:4
[INFO] [stdout]     |
[INFO] [stdout] 122 | fn put_access_list(v: &mut Vec<u8>, al: &AccessList) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `header_signing_bytes` is never used
[INFO] [stdout]    --> src/codec.rs:159:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub fn header_signing_bytes(h: &BlockHeader) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `header_bytes` is never used
[INFO] [stdout]    --> src/codec.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub fn header_bytes(h: &BlockHeader) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `header_id` is never used
[INFO] [stdout]    --> src/codec.rs:225:8
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub fn header_id(h: &BlockHeader) -> Hash {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_bytes` is never used
[INFO] [stdout]    --> src/codec.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn put_bytes(v: &mut Vec<u8>, bytes: &[u8]) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tx_enum_bytes` is never used
[INFO] [stdout]    --> src/codec.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub fn tx_enum_bytes(tx: &Tx) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MempoolConfig` is never constructed
[INFO] [stdout]   --> src/mempool/mod.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct MempoolConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TxId` is never constructed
[INFO] [stdout]   --> src/mempool/mod.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct TxId(pub [u8; 32]);
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommitmentId` is never constructed
[INFO] [stdout]   --> src/mempool/mod.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct CommitmentId(pub [u8; 32]);
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BalanceView` is never used
[INFO] [stdout]   --> src/mempool/mod.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub trait BalanceView {
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AdmissionError` is never used
[INFO] [stdout]   --> src/mempool/mod.rs:39:10
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum AdmissionError {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ensure_affordable` is never used
[INFO] [stdout]   --> src/mempool/mod.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn ensure_affordable(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockCandidate` is never constructed
[INFO] [stdout]   --> src/mempool/mod.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct BlockCandidate {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockSelectionLimits` is never constructed
[INFO] [stdout]   --> src/mempool/mod.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub struct BlockSelectionLimits {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `StateView` is never used
[INFO] [stdout]   --> src/mempool/mod.rs:89:11
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub trait StateView: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SelectError` is never used
[INFO] [stdout]    --> src/mempool/mod.rs:113:10
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub enum SelectError {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Mempool` is never used
[INFO] [stdout]    --> src/mempool/mod.rs:121:11
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub trait Mempool: Send + Sync {
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MempoolImpl` is never constructed
[INFO] [stdout]    --> src/mempool/mod.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub struct MempoolImpl {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QueuedItem` is never constructed
[INFO] [stdout]    --> src/mempool/mod.rs:171:12
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub struct QueuedItem<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/mempool/mod.rs:177:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | impl MempoolImpl {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 177 |     pub fn new(config: MempoolConfig) -> Arc<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn pending_commits_for_sender(&self, sender: &str) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn config(&self) -> &MempoolConfig {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn debug_read(
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn debug_write(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub fn revalidate<F>(&self, mut keep: F)
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn revalidate_affordability(&self, view: &dyn BalanceView, fs: &FeeState) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommitQueueItem` is never constructed
[INFO] [stdout]   --> src/mempool/queues.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct CommitQueueItem {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AvailQueueItem` is never constructed
[INFO] [stdout]   --> src/mempool/queues.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct AvailQueueItem {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RevealQueueItem` is never constructed
[INFO] [stdout]   --> src/mempool/queues.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct RevealQueueItem {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EvictKind` is never used
[INFO] [stdout]   --> src/mempool/queues.rs:50:10
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub enum EvictKind {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommitQueue` is never constructed
[INFO] [stdout]   --> src/mempool/queues.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct CommitQueue {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AvailQueue` is never constructed
[INFO] [stdout]   --> src/mempool/queues.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct AvailQueue {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RevealQueue` is never constructed
[INFO] [stdout]   --> src/mempool/queues.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub struct RevealQueue {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `txid_from` is never used
[INFO] [stdout]   --> src/mempool/queues.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn txid_from(bytes: &[u8]) -> TxId {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Queues` is never constructed
[INFO] [stdout]    --> src/mempool/queues.rs:100:12
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub struct Queues {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `key_for_fee_order` is never used
[INFO] [stdout]    --> src/mempool/queues.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl CommitQueueItem {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 107 |     fn key_for_fee_order(&self) -> (i128, Address) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `key_for_fee_order` is never used
[INFO] [stdout]    --> src/mempool/queues.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl AvailQueueItem {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 112 |     fn key_for_fee_order(&self) -> (i128, Address) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `key_for_fee_order` is never used
[INFO] [stdout]    --> src/mempool/queues.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | impl RevealQueueItem {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 117 |     fn key_for_fee_order(&self) -> (i128, Address, u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `precheck_commit`, `insert_commit_minimal`, and `retain_by` are never used
[INFO] [stdout]    --> src/mempool/queues.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | impl CommitQueue {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 122 |     fn precheck_commit(&self, c: &CommitTx, max_pending: u32) -> Result<(), AdmissionError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn insert_commit_minimal(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn retain_by<F>(&mut self, mut keep: F)
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `precheck_avail`, `insert_avail_minimal`, and `retain_by` are never used
[INFO] [stdout]    --> src/mempool/queues.rs:214:8
[INFO] [stdout]     |
[INFO] [stdout] 213 | impl AvailQueue {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 214 |     fn precheck_avail(&self, a: &AvailTx) -> Result<(), AdmissionError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn insert_avail_minimal(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub fn retain_by<F>(&mut self, mut keep: F)
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `precheck_reveal_locked`, `insert_reveal_minimal`, and `retain_by` are never used
[INFO] [stdout]    --> src/mempool/queues.rs:271:12
[INFO] [stdout]     |
[INFO] [stdout] 270 | impl RevealQueue {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 271 |     pub fn precheck_reveal_locked(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn insert_reveal_minimal(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn retain_by<F>(&mut self, mut keep: F)
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evict_any` is never used
[INFO] [stdout]    --> src/mempool/queues.rs:344:12
[INFO] [stdout]     |
[INFO] [stdout] 343 | impl Queues {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] 344 |     pub fn evict_any(&mut self, id: &crate::mempool::TxId) -> EvictKind {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `purge_older_than` and `evict_by_id` are never used
[INFO] [stdout]    --> src/mempool/queues.rs:358:12
[INFO] [stdout]     |
[INFO] [stdout] 357 | impl CommitQueue {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 358 |     pub fn purge_older_than(&mut self, current_height: u64, ttl_blocks: u32) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 372 |     pub fn evict_by_id(&mut self, id: &crate::mempool::TxId) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `purge_older_than` and `evict_by_id` are never used
[INFO] [stdout]    --> src/mempool/queues.rs:397:12
[INFO] [stdout]     |
[INFO] [stdout] 396 | impl AvailQueue {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 397 |     pub fn purge_older_than(&mut self, current_height: u64, ttl_blocks: u32) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub fn evict_by_id(&mut self, id: &crate::mempool::TxId) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `evict_by_id` and `purge_older_than` are never used
[INFO] [stdout]    --> src/mempool/queues.rs:431:12
[INFO] [stdout]     |
[INFO] [stdout] 429 | impl RevealQueue {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 430 |     /// Remove a reveal by TxId from all indices.
[INFO] [stdout] 431 |     pub fn evict_by_id(&mut self, id: &crate::mempool::TxId) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     pub fn purge_older_than(&mut self, current_height: u64, window_blocks: u32) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Batch` is never constructed
[INFO] [stdout]   --> src/mempool/workers.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Batch {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/mempool/workers.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Batch {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn new(txs: Vec<Tx>, parents: Vec<Hash>, producer_id: ValidatorId, signature: [u8; 64]) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BatchStore` is never constructed
[INFO] [stdout]   --> src/mempool/workers.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct BatchStore {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `insert`, `get`, `children_of`, and `frontier` are never used
[INFO] [stdout]   --> src/mempool/workers.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl BatchStore {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 53 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn insert(&self, batch: Batch) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn get(&self, id: &Hash) -> Option<Batch> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn children_of(&self, id: &Hash) -> Vec<Hash> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn frontier(&self) -> Vec<Hash> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkerHandle` is never constructed
[INFO] [stdout]    --> src/mempool/workers.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct WorkerHandle {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_workers` is never used
[INFO] [stdout]    --> src/mempool/workers.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn spawn_workers(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TE_DOMAIN_ENCRYPT` is never used
[INFO] [stdout]   --> src/mempool/encrypted.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const TE_DOMAIN_ENCRYPT: &[u8] = b"VORTEX-THRESHOLD-ENCRYPT-V1";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TE_DOMAIN_SHARE` is never used
[INFO] [stdout]   --> src/mempool/encrypted.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const TE_DOMAIN_SHARE: &[u8] = b"VORTEX-THRESHOLD-SHARE-V1";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TE_DOMAIN_DERIVE` is never used
[INFO] [stdout]   --> src/mempool/encrypted.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const TE_DOMAIN_DERIVE: &[u8] = b"VORTEX-THRESHOLD-DERIVE-V1";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CIPHERTEXT_SIZE` is never used
[INFO] [stdout]   --> src/mempool/encrypted.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const CIPHERTEXT_SIZE: usize = 48 + 96; // G1 point (48) + G2 signature (96)
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ThresholdError` is never used
[INFO] [stdout]   --> src/mempool/encrypted.rs:35:10
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub enum ThresholdError {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `verify` and `domain_hash` are never used
[INFO] [stdout]   --> src/mempool/encrypted.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | impl ThresholdPublicKey {
[INFO] [stdout]    | ----------------------- methods in this implementation
[INFO] [stdout] 76 |     /// Verify this public key has valid BLS12-381 structure
[INFO] [stdout] 77 |     pub fn verify(&self) -> Result<(), ThresholdError> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn domain_hash(&self) -> Hash {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `size`, `verify`, and `commitment_hash` are never used
[INFO] [stdout]    --> src/mempool/encrypted.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl ThresholdCiphertext {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] 110 |     /// Total size of this ciphertext in bytes
[INFO] [stdout] 111 |     pub fn size(&self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn verify(&self) -> Result<(), ThresholdError> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn commitment_hash(&self) -> Hash {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `verify` is never used
[INFO] [stdout]    --> src/mempool/encrypted.rs:159:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl ThresholdShare {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 158 |     /// Verify this share has valid cryptographic structure
[INFO] [stdout] 159 |     pub fn verify(&self, ciphertext: &ThresholdCiphertext) -> Result<(), ThresholdError> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ThresholdEngine` is never constructed
[INFO] [stdout]    --> src/mempool/encrypted.rs:176:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub struct ThresholdEngine {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/mempool/encrypted.rs:185:12
[INFO] [stdout]     |
[INFO] [stdout] 183 | impl ThresholdEngine {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 184 |     /// Create new threshold engine
[INFO] [stdout] 185 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn update_public_key(&mut self, pk: ThresholdPublicKey) -> Result<(), ThresholdError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn add_validator_share(&mut self, validator_id: ValidatorId, share: [u8; 32]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn remove_validator_share(&mut self, validator_id: ValidatorId) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub fn encrypt(&self, data: &[u8], epoch: u64) -> Result<ThresholdCiphertext, ThresholdError> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn generate_share(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 316 |     pub fn decrypt(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355 |     pub fn can_decrypt(&self, shares: &[ThresholdShare]) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 365 |     fn reconstruct_master_secret(&self) -> Result<blst_scalar, ThresholdError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 439 |     fn generate_ephemeral_key(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 493 |     fn aes_encrypt(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 526 |     fn aes_decrypt(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 561 |     fn build_proof_message(&self, validator_id: ValidatorId, epoch: u64) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 568 |     fn aggregate_shares(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_threshold_public_key` is never used
[INFO] [stdout]    --> src/mempool/encrypted.rs:711:12
[INFO] [stdout]     |
[INFO] [stdout] 711 |     pub fn generate_threshold_public_key(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_private_shares` is never used
[INFO] [stdout]    --> src/mempool/encrypted.rs:734:12
[INFO] [stdout]     |
[INFO] [stdout] 734 |     pub fn generate_private_shares(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_share_consistency` is never used
[INFO] [stdout]    --> src/mempool/encrypted.rs:900:12
[INFO] [stdout]     |
[INFO] [stdout] 900 |     pub fn verify_share_consistency(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VoteAggregator` is never constructed
[INFO] [stdout]   --> src/consensus/mod.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct VoteAggregator {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add`, `add_pending`, `pending_len`, and `drain_pending_with_agg_verify` are never used
[INFO] [stdout]   --> src/consensus/mod.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl VoteAggregator {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 25 |     fn new(n: usize, block_id: Hash, view: u64) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     fn add(&mut self, voter_idx: usize, sig: &BlsSignatureBytes) {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     fn add_pending(&mut self, voter_idx: usize, sig: &BlsSignatureBytes) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     fn pending_len(&self) -> usize { self.pending_indices.len() }
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 52 |     fn drain_pending_with_agg_verify(&mut self, validator_pks: &[[u8; 48]]) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HotStuff` is never constructed
[INFO] [stdout]    --> src/consensus/mod.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub struct HotStuff {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Error` is never used
[INFO] [stdout]    --> src/consensus/mod.rs:116:10
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub enum Error {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `BlockStore` is never used
[INFO] [stdout]    --> src/consensus/mod.rs:123:11
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub trait BlockStore {
[INFO] [stdout]     |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `safe_to_vote` is never used
[INFO] [stdout]    --> src/consensus/mod.rs:131:4
[INFO] [stdout]     |
[INFO] [stdout] 131 | fn safe_to_vote<S: BlockStore>(
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/consensus/mod.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout] 149 | impl HotStuff {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 150 |     pub fn new(state: HotStuffState, validator_pks: Vec<[u8;48]>, validator_id: ValidatorId, bls_signer: Option<BlsSigner>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn observe_block_header(&mut self, header: &BlockHeader) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn debug_aggregators(&self) -> Vec<(u64, Hash, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn debug_parent_index_len(&self) -> usize { self.parent_index.len() }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn debug_parent_index_sample(&self, limit: usize) -> Vec<(Hash, Hash)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn on_new_slot(&mut self, now_ms: u128) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub fn on_block_proposal(&mut self, block: &Block, _now_ms: u128) -> Result<(), Error> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn on_qc<S: BlockStore>(
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     pub fn maybe_propose(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     pub fn maybe_vote<S: BlockStore>(&mut self, store: &S, block: &Block) -> Option<Vote> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 359 |     pub fn on_vote(&mut self, vote: Vote) -> Option<QC> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     pub fn drain_evidence(&mut self) -> Vec<SlashingEvidence> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 417 |     pub fn maybe_vote_self(&mut self, block: &Block) -> Option<Vote> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 438 |     pub fn on_qc_self(&mut self, qc: QC, now_ms: u128) -> Result<Option<Hash>, Error> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_SLOT_MS` is never used
[INFO] [stdout]  --> src/consensus/dev_loop.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const DEFAULT_SLOT_MS: u64 = 1000;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_LIMITS` is never used
[INFO] [stdout]  --> src/consensus/dev_loop.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const DEFAULT_LIMITS: BlockSelectionLimits = BlockSelectionLimits { max_commits: 1024, max_avails: 1024, max_reveals: 1024 };
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DevLoopConfig` is never constructed
[INFO] [stdout]  --> src/consensus/dev_loop.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct DevLoopConfig { 
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DevLoop` is never constructed
[INFO] [stdout]   --> src/consensus/dev_loop.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct DevLoop<N> { 
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DevNode` is never used
[INFO] [stdout]   --> src/consensus/dev_loop.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub trait DevNode {
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `tick_once`, `run_for_slots`, `run_until_height`, and `run_for_duration` are never used
[INFO] [stdout]   --> src/consensus/dev_loop.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl<N> DevLoop<N> where N: DevNode {
[INFO] [stdout]    | ----------------------------------- associated items in this implementation
[INFO] [stdout] 26 |     pub fn new(node: N, cfg: DevLoopConfig) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     fn tick_once(&mut self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn run_for_slots(&mut self, n: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn run_until_height(&mut self, h: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn run_for_duration(&mut self, millis: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FeeParams` is never constructed
[INFO] [stdout]  --> src/fees.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct FeeParams {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FEE_PARAMS` is never used
[INFO] [stdout]   --> src/fees.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const FEE_PARAMS: FeeParams = FeeParams {
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FeeState` is never constructed
[INFO] [stdout]   --> src/fees.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct FeeState { 
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_defaults` is never used
[INFO] [stdout]   --> src/fees.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl FeeState { 
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 58 |     pub fn from_defaults() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Lane` is never used
[INFO] [stdout]   --> src/fees.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub enum Lane { Exec, Commit, Avail }
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lane_base` is never used
[INFO] [stdout]   --> src/fees.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub fn lane_base(f: &FeeState, lane: Lane) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FeeSplitBps` is never constructed
[INFO] [stdout]   --> src/fees.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub struct FeeSplitBps {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FEE_SPLIT` is never used
[INFO] [stdout]   --> src/fees.rs:85:11
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub const FEE_SPLIT: FeeSplitBps = FeeSplitBps {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_amount` is never used
[INFO] [stdout]   --> src/fees.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn split_amount(amount: u64) -> (u64 /*burn*/, u64 /*proposer*/, u64 /*treasury*/) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_commit_base` is never used
[INFO] [stdout]    --> src/fees.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn update_commit_base(prev_base: u64, commits_used: u32) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_exec_base` is never used
[INFO] [stdout]    --> src/fees.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn update_exec_base(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PendingVoteRetry` is never constructed
[INFO] [stdout]   --> src/node.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct PendingVoteRetry {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StateBalanceView` is never constructed
[INFO] [stdout]   --> src/node.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct StateBalanceView<'a> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelectedIds` is never constructed
[INFO] [stdout]   --> src/node.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct SelectedIds {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BuiltBlock` is never constructed
[INFO] [stdout]   --> src/node.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct BuiltBlock {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProduceError` is never used
[INFO] [stdout]   --> src/node.rs:58:10
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub enum ProduceError {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PacemakerConfig` is never constructed
[INFO] [stdout]   --> src/node.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct PacemakerConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConsensusConfig` is never constructed
[INFO] [stdout]   --> src/node.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct ConsensusConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/node.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct Node {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeStateView` is never constructed
[INFO] [stdout]    --> src/node.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 125 | struct NodeStateView<'a> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/node.rs:170:19
[INFO] [stdout]      |
[INFO] [stdout] 167  | impl Node {
[INFO] [stdout]      | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 170  |     pub(crate) fn leader_for_view(&self, view: u64) -> ValidatorId {
[INFO] [stdout]      |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176  |     fn now_ms() -> u128 { (Self::now_ts() as u128) * 1000 }
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] 177  |
[INFO] [stdout] 178  |     fn schedule_vote_retry(&mut self, vote: Vote, leader_id: ValidatorId, delay_ms: u64) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183  |     fn process_pending_vote_retries(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212  |     pub fn new(mempool: Arc<MempoolImpl>, signer: SigningKey) -> Self {
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 242  |     pub fn new_with_consensus(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338  |     fn collect_active_bls_pubkeys_in_order(&self) -> Result<Vec<[u8;48]>> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355  |     fn resolve_my_validator_id(&self) -> Result<ValidatorId> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 367  |     fn load_best_qc_from_store(&self) -> Result<Option<QC>> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371  |     pub fn align_clock_for_test(&mut self) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 380  |     pub fn set_vrf_signer(&mut self, vrf: SchnorrkelVrfSigner) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385  |     pub fn with_vrf_signer(mut self, vrf: SchnorrkelVrfSigner) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 391  |     pub fn set_consensus_network(&mut self, network: ConsensusNetwork) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396  |     pub fn consensus_network(&self) -> Option<&ConsensusNetwork> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 401  |     pub fn hotstuff_mut(&mut self) -> Option<&mut HotStuff> {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406  |     pub fn hotstuff(&self) -> Option<&HotStuff> {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 411  |     pub fn set_hotstuff(&mut self, hotstuff: HotStuff) {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 416  |     fn apply_committed_block(&mut self, commit_id: Hash) -> Result<(), String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 514  |     fn request_block(&mut self, block_id: Hash) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 523  |     fn header_eligibility_check(&self, header: &crate::types::BlockHeader) -> Result<(), String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 559  |     pub fn header_is_eligible(&self, header: &crate::types::BlockHeader) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 564  |     fn try_apply_pending_commits(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 591  |     pub fn process_consensus_messages(&mut self) -> Result<Vec<Hash>, String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 682  |     pub fn process_consensus_message(&mut self, msg: crate::p2p::ConsensusMessage) -> Result<Vec<Hash>, String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 755  |     fn handle_proposal(&mut self, block: &Block, sender_id: ValidatorId) -> Result<(), String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 873  |     fn handle_vote(&mut self, vote: Vote, sender_id: ValidatorId) -> Result<Option<Hash>, String> {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 900  |     fn handle_qc(&mut self, qc: QC, sender_id: ValidatorId) -> Result<Option<Hash>, String> {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 944  |     fn handle_view_change(&mut self, view: u64, sender_id: ValidatorId, timeout_qc: Option<QC>) -> Result<(), String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 973  |     pub fn check_pacemaker_timeout(&mut self) -> Result<(), String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1059 |     fn my_vrf_pubkey(&self) -> [u8; 32] {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1066 |     pub fn install_self_as_genesis_validator(&mut self, id: ValidatorId, stake: u128) -> BlsSigner {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1073 |     pub fn install_self_as_genesis_validator_with_key(&mut self, id: ValidatorId, stake: u128, bls_key: &[u8; 32]) -> BlsSigner {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1098 |     pub fn init_with_shared_validator_set(&mut self, validators: Vec<Validator>, my_bls_signer: BlsSigner) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1112 |     fn now_ts() -> u64 {
[INFO] [stdout]      |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1118 |     fn my_validator_id(&self) -> Option<ValidatorId> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1127 |     fn derive_block_randomness(&self, next_height: u64, slot: u64) -> [u8; 32] {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1137 |     pub fn height(&self) -> u64 {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1141 |     pub fn tip_hash(&self) -> Hash {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1145 |     pub fn proposer_pubkey(&self) -> [u8; 32] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1149 |     pub fn fee_state(&self) -> &FeeState {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1154 |     pub fn current_slot(&self) -> u64 { self.chain.current_slot() }
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1157 |     pub fn slot_ms(&self) -> u64 { self.chain.clock.slot_ms }
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1160 |     pub fn set_slot_ms(&mut self, ms: u64) { self.chain.clock.slot_ms = ms; }
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1164 |     pub fn expected_leader_for_next_block(&self) -> Option<ValidatorId> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1171 |     pub fn set_commit_fee_base(&mut self, base: u64) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1175 |     pub fn burned_total(&self) -> u64 {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1179 |     pub fn balance_of(&self, who: &str) -> u64 {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1183 |     pub fn set_balance(&mut self, who: String, amount: u64) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1187 |     pub fn rpc_insert_commit(&self, commit: CommitTx, fee_bid: u128) -> Result<TxId, AdmissionError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1198 |     pub fn rpc_insert_avail(&self, avail: AvailTx, fee_bid: u128) -> Result<TxId, AdmissionError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1209 |     pub fn rpc_insert_reveal(&self, reveal: RevealTx, fee_bid: u128) -> Result<TxId, AdmissionError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1222 |     pub fn credit_balance_direct(&mut self, addr: &str, amount: u64) -> u64 {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1237 |     fn simulate_block(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1495 |     pub fn produce_block(
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1621 |     pub fn debug_hotstuff_aggregators(&self) -> Option<Vec<(u64, Hash, usize, usize)>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1629 |     pub fn debug_parent_index_len(&self) -> Option<usize> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1634 |     pub fn debug_parent_index_sample(&self, limit: usize) -> Option<Vec<(Hash, Hash)>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1639 |     pub fn debug_block_store_sample(&self, limit: usize) -> Vec<(Hash, u64, u64, Hash, u64)> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1648 |     pub fn debug_pending_commits(&self) -> Vec<Hash> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1653 |     pub fn debug_last_proposed_view(&self) -> Option<u64> { self.last_proposed_view }
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1656 |     pub fn debug_mempool_counts(&self) -> (usize, usize, usize) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1661 |     pub fn debug_last_apply_error(&self) -> Option<String> { self.last_apply_error.clone() }
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1662 |
[INFO] [stdout] 1663 |     pub fn debug_last_vote_skip_reason(&self) -> Option<String> { self.last_vote_skip_reason.clone() }
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1664 |     pub fn debug_last_vote_skip_view(&self) -> Option<u64> { self.last_vote_skip_view }
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1667 |     pub fn debug_block_store_len(&self) -> usize { self.block_store.len() }
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_SLOT_MS` is never used
[INFO] [stdout]   --> src/chain.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const DEFAULT_SLOT_MS: u64 = 500;       // 0.5s slots for dev
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_EPOCH_SLOTS` is never used
[INFO] [stdout]   --> src/chain.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const DEFAULT_EPOCH_SLOTS: u64 = 1_024; // power-of-two for easy math
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_BUNDLE_LEN` is never used
[INFO] [stdout]   --> src/chain.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub const DEFAULT_BUNDLE_LEN: u8 = 4;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_TAU` is never used
[INFO] [stdout]   --> src/chain.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const DEFAULT_TAU: f64 = 0.5;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Chain` is never constructed
[INFO] [stdout]   --> src/chain.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct Chain {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RegistryEntry` is never constructed
[INFO] [stdout]   --> src/chain.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub struct RegistryEntry {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ApplyResult` is never constructed
[INFO] [stdout]   --> src/chain.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct ApplyResult {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/chain.rs:79:12
[INFO] [stdout]     |
[INFO] [stdout] 78  | impl Chain {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 79  |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn now_ts(&self) -> u128 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn current_slot_at(&self, now_ms: u128) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn current_slot(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn init_genesis(&mut self, set: ValidatorSet, seed: [u8; 32]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn verify_header_proposer(&mut self, header: &crate::types::BlockHeader) -> Result<(), BlockError> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     pub fn on_epoch_transition(&mut self, new_set: ValidatorSet, new_seed: [u8; 32]) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub fn record_leader_miss(&mut self, vid: ValidatorId) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 326 |     fn adjust_validator_set_with_penalties(&self, set: &ValidatorSet) -> ValidatorSet {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     pub fn next_epoch_seed(&self, last_epoch_accumulator: [u8; 32]) -> [u8; 32] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn update_randomness_with_block(&mut self, header: &crate::types::BlockHeader) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 388 |     pub fn apply_block(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 592 |     fn build_set_from_registry(&self, epoch: u64) -> ValidatorSet {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 614 |     pub fn commit_simulated_block(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 771 |     pub fn commit_on_chain(&self, c: &Hash) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 776 |     pub fn avail_on_chain(&self, c: &Hash) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 781 |     pub fn avail_allowed_at(&self, height: u64, c: &Hash) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 792 |     pub fn commitments_due_and_available(&self, height: u64) -> Vec<Hash> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 |     pub fn add_threshold_share(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 830 |     pub fn get_threshold_shares(&self, commitment: &Hash) -> Option<&Vec<crate::mempool::encrypted::ThresholdShare>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 835 |     pub fn remove_threshold_shares(&mut self, commitment: &Hash) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 840 |     pub fn can_decrypt_commitment(&self, commitment: &Hash) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 850 |     pub fn cleanup_old_shares(&mut self, commitments: &crate::state::Commitments) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 860 |     fn collect_bls_pubkeys_snapshot(&self) -> Result<Vec<[u8; 48]>, BlockError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 879 |     pub fn apply_slash(&mut self, evidence: &SlashingEvidence, cfg: &StakingConfig) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compute_roots_for` is never used
[INFO] [stdout]   --> src/verify.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn compute_roots_for(block: &Block, batches: &BatchStore, receipts: &[Receipt]) -> (Hash, Hash, Hash) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_block_roots` is never used
[INFO] [stdout]   --> src/verify.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn verify_block_roots(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ValidatorStatus` is never used
[INFO] [stdout]  --> src/pos/registry.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum ValidatorStatus { Active, Inactive, Jailed }
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Validator` is never constructed
[INFO] [stdout]   --> src/pos/registry.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct Validator {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StakingConfig` is never constructed
[INFO] [stdout]   --> src/pos/registry.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct StakingConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ValidatorSet` is never constructed
[INFO] [stdout]   --> src/pos/registry.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct ValidatorSet {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PosError` is never used
[INFO] [stdout]   --> src/pos/registry.rs:35:10
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub enum PosError {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/pos/registry.rs:50:12
[INFO] [stdout]     |
[INFO] [stdout] 42  | impl ValidatorSet {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50  |     pub fn from_genesis(epoch: u64, cfg: &StakingConfig, mut vals: Vec<Validator>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 93  |     pub fn get(&self, id: ValidatorId) -> Option<&Validator> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     fn get_mut(&mut self, id: ValidatorId) -> Option<&mut Validator> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn index_of(&self, id: ValidatorId) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn total_stake(&self) -> u128 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn bond(&mut self, id: ValidatorId, amount: u128, _cfg: &StakingConfig) -> Result<(), PosError> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn unbond(&mut self, id: ValidatorId, amount: u128, cfg: &StakingConfig) -> Result<(), PosError> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn activate(&mut self, id: ValidatorId) -> Result<(), PosError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn deactivate(&mut self, id: ValidatorId) -> Result<(), PosError> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn jail(&mut self, id: ValidatorId) -> Result<(), PosError> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     fn recompute_total_stake(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ProposerSchedule` is never used
[INFO] [stdout]  --> src/pos/schedule.rs:7:11
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub trait ProposerSchedule {
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AliasSchedule` is never constructed
[INFO] [stdout]   --> src/pos/schedule.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct AliasSchedule {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/pos/schedule.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl AliasSchedule {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 46 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `bump`, `next_u64`, and `next_u128` are never used
[INFO] [stdout]    --> src/pos/schedule.rs:149:16
[INFO] [stdout]     |
[INFO] [stdout] 148 |         impl HashRng {
[INFO] [stdout]     |         ------------ associated items in this implementation
[INFO] [stdout] 149 |             fn new(seed: [u8; 32]) -> Self { Self { state: seed, ctr: 0 } }
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 150 |             #[inline]
[INFO] [stdout] 151 |             fn bump(&mut self) {
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |             fn next_u64(&mut self) -> u64 {
[INFO] [stdout]     |                ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |             fn next_u128(&mut self) -> u128 {
[INFO] [stdout]     |                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SlotClock` is never constructed
[INFO] [stdout]  --> src/pos/slots.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct SlotClock {
[INFO] [stdout]   |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `current_slot`, `current_epoch`, `slot_start_unix`, `slot_in_epoch`, and `bundle_start` are never used
[INFO] [stdout]   --> src/pos/slots.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl SlotClock {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub fn current_slot(&self, now_unix_ms: u128) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn current_epoch(&self, slot: u64) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn slot_start_unix(&self, slot: u64) -> u128 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn slot_in_epoch(&self, slot: u64) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn bundle_start(&self, slot: u64, bundle_len: u8) -> u64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `P2PBehaviour` is never constructed
[INFO] [stdout]   --> src/p2p.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct P2PBehaviour {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/p2p.rs:71:15
[INFO] [stdout]    |
[INFO] [stdout] 71 |     Gossipsub(gossipsub::Event),
[INFO] [stdout]    |     --------- ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 71 -     Gossipsub(gossipsub::Event),
[INFO] [stdout] 71 +     Gossipsub(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/p2p.rs:72:10
[INFO] [stdout]    |
[INFO] [stdout] 72 |     Mdns(mdns::Event),
[INFO] [stdout]    |     ---- ^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 72 -     Mdns(mdns::Event),
[INFO] [stdout] 72 +     Mdns(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/p2p.rs:73:14
[INFO] [stdout]    |
[INFO] [stdout] 73 |     Identify(identify::Event),
[INFO] [stdout]    |     -------- ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 73 -     Identify(identify::Event),
[INFO] [stdout] 73 +     Identify(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/p2p.rs:74:10
[INFO] [stdout]    |
[INFO] [stdout] 74 |     Ping(ping::Event),
[INFO] [stdout]    |     ---- ^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 74 -     Ping(ping::Event),
[INFO] [stdout] 74 +     Ping(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/p2p.rs:75:14
[INFO] [stdout]    |
[INFO] [stdout] 75 |     Kademlia(kad::Event),
[INFO] [stdout]    |     -------- ^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 75 -     Kademlia(kad::Event),
[INFO] [stdout] 75 +     Kademlia(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `P2PConfig` is never constructed
[INFO] [stdout]    --> src/p2p.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub struct P2PConfig {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConsensusNetwork` is never constructed
[INFO] [stdout]    --> src/p2p.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub struct ConsensusNetwork {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NetworkCommand` is never used
[INFO] [stdout]    --> src/p2p.rs:160:6
[INFO] [stdout]     |
[INFO] [stdout] 160 | enum NetworkCommand {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/p2p.rs:170:18
[INFO] [stdout]     |
[INFO] [stdout] 168 | impl ConsensusNetwork {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 169 |     /// Create a new consensus network instance with P2P
[INFO] [stdout] 170 |     pub async fn new(validator_id: ValidatorId, config: P2PConfig) -> Result<Self> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     pub fn connect_peer(&self, addr: Multiaddr) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub fn broadcast_proposal(&self, block: Block, parent: Option<Block>) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 347 |     pub fn send_vote(&self, vote: Vote, leader_id: ValidatorId) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 369 |     pub fn broadcast_qc(&self, qc: QC) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 383 |     pub fn broadcast_block_request(&self, block_id: Hash) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     pub fn broadcast_block_response(&self, block: Block) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 395 |     pub fn broadcast_view_change(&self, view: u64, timeout_qc: Option<QC>) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 413 |     pub fn try_recv_message(&self) -> Option<ConsensusMessage> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 431 |     pub fn subscribe(&self) -> broadcast::Receiver<ConsensusMessage> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 436 |     fn send_to_validator(&self, validator_id: ValidatorId, msg: ConsensusMessage) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 443 |     fn broadcast_message(&self, msg: ConsensusMessage) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 450 |     pub fn validator_id(&self) -> ValidatorId {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 455 |     pub fn peer_id(&self) -> PeerId {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 460 |     pub fn connected_peers(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 465 |     pub fn peer_ids(&self) -> Vec<PeerId> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 470 |     pub fn install_direct_peers(&self, map: HashMap<ValidatorId, broadcast::Sender<ConsensusMessage>>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 475 |     pub fn broadcast_slash_evidence(&self, evidence: SlashingEvidence) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetworkTask` is never constructed
[INFO] [stdout]    --> src/p2p.rs:490:8
[INFO] [stdout]     |
[INFO] [stdout] 490 | struct NetworkTask {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/p2p.rs:505:14
[INFO] [stdout]     |
[INFO] [stdout] 504 | impl NetworkTask {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 505 |     async fn run(mut self) {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 529 |     async fn handle_command(&mut self, command: NetworkCommand) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 561 |     async fn handle_swarm_event(&mut self, event: SwarmEvent<P2PEvent>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 616 |     async fn handle_gossipsub_message(&mut self, source: PeerId, message: gossipsub::Message) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 639 |     async fn broadcast_consensus_message(&mut self, msg: ConsensusMessage) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 661 |     async fn send_to_validator(&mut self, _validator_id: ValidatorId, msg: ConsensusMessage) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 666 |     async fn check_and_discover(&mut self) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 675 |     async fn run_discovery_round(&mut self) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_network` is never used
[INFO] [stdout]    --> src/p2p.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn create_test_network(validator_ids: Vec<ValidatorId>) -> Result<Vec<ConsensusNetwork>, anyhow::Error> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/node.rs:929:13
[INFO] [stdout]     |
[INFO] [stdout] 929 |             drop(hs);
[INFO] [stdout]     |             ^^^^^--^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  argument has type `&mut HotStuff`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 929 -             drop(hs);
[INFO] [stdout] 929 +             let _ = hs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/node.rs:962:17
[INFO] [stdout]     |
[INFO] [stdout] 962 |                 drop(hotstuff);
[INFO] [stdout]     |                 ^^^^^--------^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      argument has type `&mut HotStuff`
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 962 -                 drop(hotstuff);
[INFO] [stdout] 962 +                 let _ = hotstuff;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]     --> src/node.rs:1015:25
[INFO] [stdout]      |
[INFO] [stdout] 1015 |                         drop(hs2);
[INFO] [stdout]      |                         ^^^^^---^
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              argument has type `&mut HotStuff`
[INFO] [stdout]      |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]      |
[INFO] [stdout] 1015 -                         drop(hs2);
[INFO] [stdout] 1015 +                         let _ = hs2;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PacemakerConfig` and `hash_bytes_sha256`
[INFO] [stdout]   --> src/bin/localnet_multi.rs:21:14
[INFO] [stdout]    |
[INFO] [stdout] 21 |     crypto::{hash_bytes_sha256},
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     node::{Node, PacemakerConfig},
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/bin/localnet_multi.rs:208:46
[INFO] [stdout]     |
[INFO] [stdout] 208 | ...                   rx_opt = { node2.lock().unwrap().consensus_network().map(|net| net.subscribe()) };
[INFO] [stdout]     |                                ^^                                                                    ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_braces)]` on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 208 -                                     rx_opt = { node2.lock().unwrap().consensus_network().map(|net| net.subscribe()) };
[INFO] [stdout] 208 +                                     rx_opt = node2.lock().unwrap().consensus_network().map(|net| net.subscribe());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/bin/localnet_multi.rs:223:30
[INFO] [stdout]     |
[INFO] [stdout] 223 |                     rx_opt = { node2.lock().unwrap().consensus_network().map(|net| net.subscribe()) };
[INFO] [stdout]     |                              ^^                                                                    ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 223 -                     rx_opt = { node2.lock().unwrap().consensus_network().map(|net| net.subscribe()) };
[INFO] [stdout] 223 +                     rx_opt = node2.lock().unwrap().consensus_network().map(|net| net.subscribe());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling tempfile v3.20.0
[INFO] [stderr]    Compiling rusty-fork v0.3.0
[INFO] [stderr]    Compiling proptest v1.7.0
[INFO] [stderr]    Compiling l1-blockchain v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `PacemakerConfig` and `hash_bytes_sha256`
[INFO] [stdout]   --> src/bin/localnet_multi.rs:21:14
[INFO] [stdout]    |
[INFO] [stdout] 21 |     crypto::{hash_bytes_sha256},
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     node::{Node, PacemakerConfig},
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/bin/localnet_multi.rs:208:46
[INFO] [stdout]     |
[INFO] [stdout] 208 | ...                   rx_opt = { node2.lock().unwrap().consensus_network().map(|net| net.subscribe()) };
[INFO] [stdout]     |                                ^^                                                                    ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_braces)]` on by default
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 208 -                                     rx_opt = { node2.lock().unwrap().consensus_network().map(|net| net.subscribe()) };
[INFO] [stdout] 208 +                                     rx_opt = node2.lock().unwrap().consensus_network().map(|net| net.subscribe());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around assigned value
[INFO] [stdout]    --> src/bin/localnet_multi.rs:223:30
[INFO] [stdout]     |
[INFO] [stdout] 223 |                     rx_opt = { node2.lock().unwrap().consensus_network().map(|net| net.subscribe()) };
[INFO] [stdout]     |                              ^^                                                                    ^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these braces
[INFO] [stdout]     |
[INFO] [stdout] 223 -                     rx_opt = { node2.lock().unwrap().consensus_network().map(|net| net.subscribe()) };
[INFO] [stdout] 223 +                     rx_opt = node2.lock().unwrap().consensus_network().map(|net| net.subscribe());
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Hash`
[INFO] [stdout]   --> tests/prop_selection.rs:16:95
[INFO] [stdout]    |
[INFO] [stdout] 16 | use l1_blockchain::types::{AccessList, AvailTx, CommitTx, RevealTx, Transaction, Tx, Address, Hash};
[INFO] [stdout]    |                                                                                               ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `threshold_pk`
[INFO] [stdout]   --> tests/mempool_threshold_encryption.rs:79:10
[INFO] [stdout]    |
[INFO] [stdout] 79 |     let (threshold_pk, engine, _private_shares) = setup_threshold_system(&validators, threshold, epoch);
[INFO] [stdout]    |          ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_threshold_pk`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `threshold_key_share` is never read
[INFO] [stdout]   --> tests/mempool_threshold_encryption.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct MockValidator {
[INFO] [stdout]    |        ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     threshold_key_share: [u8; 32],
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/threshold_encryption_integration.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let mut nonces = Nonces::new();
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `encrypted_payload`
[INFO] [stdout]    --> tests/threshold_encryption_integration.rs:493:9
[INFO] [stdout]     |
[INFO] [stdout] 493 |     let encrypted_payload = chain.threshold_engine.encrypt(original_tx_data, 0).unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_encrypted_payload`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `consensus_config`
[INFO] [stdout]   --> tests/hotstuff_consensus.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |     let consensus_config = ConsensusConfig {
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_consensus_config`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `leader_id`
[INFO] [stdout]    --> tests/hotstuff_consensus.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 178 |     let leader_id = node_0.expected_leader_for_next_block().expect("leader available");
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_leader_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/hotstuff_consensus.rs:469:13
[INFO] [stdout]     |
[INFO] [stdout] 469 |     assert!(committed_blocks.len() >= 0, "Should have processed consensus rounds");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]    --> tests/hotstuff_consensus.rs:633:13
[INFO] [stdout]     |
[INFO] [stdout] 633 |     assert!(all_committed_blocks.len() >= 0);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlsAggregate`
[INFO] [stdout]  --> src/types.rs:5:49
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{codec::qc_commitment, crypto::bls::{BlsAggregate, BlsSignatureBytes}, pos::registry::ValidatorId, mempool::encrypted::Thresho...
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `header_bytes`
[INFO] [stdout]   --> src/stf.rs:13:50
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::codec::{tx_enum_bytes, receipt_bytes, header_bytes, tx_bytes};
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StateKey`
[INFO] [stdout]   --> src/stf.rs:17:81
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::types::{Block, Receipt, ExecOutcome, Hash, BlockHeader, Transaction, StateKey, Tx, Event, RevealTx, CommitTx, AccessList, Addr...
[INFO] [stdout]    |                                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AccessList`
[INFO] [stdout]    --> src/stf.rs:339:24
[INFO] [stdout]     |
[INFO] [stdout] 339 |     use crate::types::{AccessList, StateKey};
[INFO] [stdout]     |                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ThresholdCiphertext` and `ThresholdShare`
[INFO] [stdout]   --> src/mempool/mod.rs:15:38
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use encrypted::{ThresholdEngine, ThresholdCiphertext, ThresholdShare, ThresholdError};
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::chain::DEFAULT_BUNDLE_LEN`
[INFO] [stdout]    --> src/fees.rs:161:9
[INFO] [stdout]     |
[INFO] [stdout] 161 |     use crate::chain::DEFAULT_BUNDLE_LEN;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SchnorrkelVrfSigner`, `VrfSigner`, and `build_vrf_msg`
[INFO] [stdout]    --> src/fees.rs:162:30
[INFO] [stdout]     |
[INFO] [stdout] 162 |     use crate::crypto::vrf::{build_vrf_msg, SchnorrkelVrfSigner, VrfSigner};
[INFO] [stdout]     |                              ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlsSignatureBytes`
[INFO] [stdout]  --> src/node.rs:3:48
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::crypto::bls::{verify_qc, BlsSigner, BlsSignatureBytes, BlsAggregate, vote_msg};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SystemTime` and `UNIX_EPOCH`
[INFO] [stdout]     --> src/node.rs:1796:25
[INFO] [stdout]      |
[INFO] [stdout] 1796 |         use std::time::{SystemTime, UNIX_EPOCH};
[INFO] [stdout]      |                         ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `header_bytes`
[INFO] [stdout]  --> src/chain.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::codec::{header_bytes, header_signing_bytes, qc_commitment};
[INFO] [stdout]   |                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlockHeader`
[INFO] [stdout]   --> src/chain.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::types::{Block, BlockHeader, Event, Hash, Receipt, SlashingEvidence, Address};
[INFO] [stdout]    |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `header_bytes`
[INFO] [stdout]     --> src/chain.rs:1018:9
[INFO] [stdout]      |
[INFO] [stdout] 1018 |         header_bytes, header_signing_bytes, tx_bytes, access_list_bytes, string_bytes,
[INFO] [stdout]      |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SchnorrkelVrfSigner`
[INFO] [stdout]     --> src/chain.rs:1020:30
[INFO] [stdout]      |
[INFO] [stdout] 1020 |     use crate::crypto::vrf::{SchnorrkelVrfSigner, VrfSigner};
[INFO] [stdout]      |                              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlsSignatureBytes`
[INFO] [stdout]     --> src/chain.rs:1029:30
[INFO] [stdout]      |
[INFO] [stdout] 1029 |     use crate::crypto::bls::{BlsSignatureBytes, BlsSigner, BlsAggregate, vote_msg};
[INFO] [stdout]      |                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `addr_from_pubkey`, `addr_hex`, and `hash_bytes_sha256`
[INFO] [stdout]     --> src/chain.rs:1776:29
[INFO] [stdout]      |
[INFO] [stdout] 1776 |         use crate::crypto::{hash_bytes_sha256, addr_from_pubkey, addr_hex};
[INFO] [stdout]      |                             ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SchnorrkelVrfSigner`, `VrfSigner`, and `build_vrf_msg`
[INFO] [stdout]     --> src/chain.rs:1777:34
[INFO] [stdout]      |
[INFO] [stdout] 1777 |         use crate::crypto::vrf::{SchnorrkelVrfSigner, VrfSigner, build_vrf_msg};
[INFO] [stdout]      |                                  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::cmp::Ordering`
[INFO] [stdout]  --> src/pos/registry.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::cmp::Ordering;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/p2p.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::upgrade`
[INFO] [stdout]   --> src/p2p.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     core::upgrade,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Pacemaker`
[INFO] [stdout]    --> src/p2p.rs:777:37
[INFO] [stdout]     |
[INFO] [stdout] 777 |     use crate::types::{BlockHeader, Pacemaker};
[INFO] [stdout]     |                                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlsAggregate`
[INFO] [stdout]  --> src/types.rs:5:49
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{codec::qc_commitment, crypto::bls::{BlsAggregate, BlsSignatureBytes}, pos::registry::ValidatorId, mempool::encrypted::Thresho...
[INFO] [stdout]   |                                                 ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `header_bytes`
[INFO] [stdout]  --> src/chain.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::codec::{header_bytes, header_signing_bytes, qc_commitment};
[INFO] [stdout]   |                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlockHeader`
[INFO] [stdout]   --> src/chain.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::types::{Block, BlockHeader, Event, Hash, Receipt, SlashingEvidence, Address};
[INFO] [stdout]    |                           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `header_bytes`
[INFO] [stdout]     --> src/chain.rs:1018:9
[INFO] [stdout]      |
[INFO] [stdout] 1018 |         header_bytes, header_signing_bytes, tx_bytes, access_list_bytes, string_bytes,
[INFO] [stdout]      |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SchnorrkelVrfSigner`
[INFO] [stdout]     --> src/chain.rs:1020:30
[INFO] [stdout]      |
[INFO] [stdout] 1020 |     use crate::crypto::vrf::{SchnorrkelVrfSigner, VrfSigner};
[INFO] [stdout]      |                              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlsSignatureBytes`
[INFO] [stdout]     --> src/chain.rs:1029:30
[INFO] [stdout]      |
[INFO] [stdout] 1029 |     use crate::crypto::bls::{BlsSignatureBytes, BlsSigner, BlsAggregate, vote_msg};
[INFO] [stdout]      |                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `addr_from_pubkey`, `addr_hex`, and `hash_bytes_sha256`
[INFO] [stdout]     --> src/chain.rs:1776:29
[INFO] [stdout]      |
[INFO] [stdout] 1776 |         use crate::crypto::{hash_bytes_sha256, addr_from_pubkey, addr_hex};
[INFO] [stdout]      |                             ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SchnorrkelVrfSigner`, `VrfSigner`, and `build_vrf_msg`
[INFO] [stdout]     --> src/chain.rs:1777:34
[INFO] [stdout]      |
[INFO] [stdout] 1777 |         use crate::crypto::vrf::{SchnorrkelVrfSigner, VrfSigner, build_vrf_msg};
[INFO] [stdout]      |                                  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `header_bytes`
[INFO] [stdout]   --> src/stf.rs:13:50
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::codec::{tx_enum_bytes, receipt_bytes, header_bytes, tx_bytes};
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StateKey`
[INFO] [stdout]   --> src/stf.rs:17:81
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::types::{Block, Receipt, ExecOutcome, Hash, BlockHeader, Transaction, StateKey, Tx, Event, RevealTx, CommitTx, AccessList, Addr...
[INFO] [stdout]    |                                                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AccessList`
[INFO] [stdout]    --> src/stf.rs:339:24
[INFO] [stdout]     |
[INFO] [stdout] 339 |     use crate::types::{AccessList, StateKey};
[INFO] [stdout]     |                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::chain::DEFAULT_BUNDLE_LEN`
[INFO] [stdout]    --> src/fees.rs:161:9
[INFO] [stdout]     |
[INFO] [stdout] 161 |     use crate::chain::DEFAULT_BUNDLE_LEN;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SchnorrkelVrfSigner`, `VrfSigner`, and `build_vrf_msg`
[INFO] [stdout]    --> src/fees.rs:162:30
[INFO] [stdout]     |
[INFO] [stdout] 162 |     use crate::crypto::vrf::{build_vrf_msg, SchnorrkelVrfSigner, VrfSigner};
[INFO] [stdout]     |                              ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BlsSignatureBytes`
[INFO] [stdout]  --> src/node.rs:3:48
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::crypto::bls::{verify_qc, BlsSigner, BlsSignatureBytes, BlsAggregate, vote_msg};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SystemTime` and `UNIX_EPOCH`
[INFO] [stdout]     --> src/node.rs:1796:25
[INFO] [stdout]      |
[INFO] [stdout] 1796 |         use std::time::{SystemTime, UNIX_EPOCH};
[INFO] [stdout]      |                         ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::cmp::Ordering`
[INFO] [stdout]  --> src/pos/registry.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use core::cmp::Ordering;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]  --> src/rpc.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::node::Node`
[INFO] [stdout]  --> src/rpc.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::node::Node;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/p2p.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `core::upgrade`
[INFO] [stdout]   --> src/p2p.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     core::upgrade,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Pacemaker`
[INFO] [stdout]    --> src/p2p.rs:777:37
[INFO] [stdout]     |
[INFO] [stdout] 777 |     use crate::types::{BlockHeader, Pacemaker};
[INFO] [stdout]     |                                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `day`
[INFO] [stdout]    --> src/rpc.rs:436:14
[INFO] [stdout]     |
[INFO] [stdout] 436 |         let (day, used) = *limiter.book.get(&key).unwrap();
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_day`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VrfSigner`
[INFO] [stdout]     --> src/chain.rs:1020:51
[INFO] [stdout]      |
[INFO] [stdout] 1020 |     use crate::crypto::vrf::{SchnorrkelVrfSigner, VrfSigner};
[INFO] [stdout]      |                                                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `VrfSigner`
[INFO] [stdout]     --> src/chain.rs:1020:51
[INFO] [stdout]      |
[INFO] [stdout] 1020 |     use crate::crypto::vrf::{SchnorrkelVrfSigner, VrfSigner};
[INFO] [stdout]      |                                                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commitment`
[INFO] [stdout]    --> src/chain.rs:507:49
[INFO] [stdout]     |
[INFO] [stdout] 507 |                 Event::ThresholdShareReceived { commitment, validator_id: _ } => {
[INFO] [stdout]     |                                                 ^^^^^^^^^^ help: try ignoring the field: `commitment: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commitment`
[INFO] [stdout]    --> src/chain.rs:699:49
[INFO] [stdout]     |
[INFO] [stdout] 699 |                 Event::ThresholdShareReceived { commitment, validator_id: _ } => {
[INFO] [stdout]     |                                                 ^^^^^^^^^^ help: try ignoring the field: `commitment: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `proposer_id`
[INFO] [stdout]     --> src/chain.rs:2052:13
[INFO] [stdout]      |
[INFO] [stdout] 2052 |         let proposer_id: u64 = 1;
[INFO] [stdout]      |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_proposer_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/chain.rs:2056:13
[INFO] [stdout]      |
[INFO] [stdout] 2056 |         let mut build_block_vortex_ok = |chain: &Chain,
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/chain.rs:2137:13
[INFO] [stdout]      |
[INFO] [stdout] 2137 |         let mut build_block_vortex_raw = |chain: &Chain,
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `epoch_seed`
[INFO] [stdout]    --> src/fees.rs:392:13
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let epoch_seed = [7u8; 32];
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_epoch_seed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/fees.rs:415:13
[INFO] [stdout]     |
[INFO] [stdout] 415 |         let mut mk_header = |proposer_id: u64| {
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/node.rs:493:17
[INFO] [stdout]     |
[INFO] [stdout] 493 |                 _ => {}
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/node.rs:493:17
[INFO] [stdout]     |
[INFO] [stdout] 485 |                 Tx::Commit(c) => {
[INFO] [stdout]     |                 ------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 489 |                 Tx::Avail(a) => {
[INFO] [stdout]     |                 ------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 493 |                 _ => {}
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:755:50
[INFO] [stdout]     |
[INFO] [stdout] 755 |     fn handle_proposal(&mut self, block: &Block, sender_id: ValidatorId) -> Result<(), String> {
[INFO] [stdout]     |                                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:873:43
[INFO] [stdout]     |
[INFO] [stdout] 873 |     fn handle_vote(&mut self, vote: Vote, sender_id: ValidatorId) -> Result<Option<Hash>, String> {
[INFO] [stdout]     |                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/node.rs:926:17
[INFO] [stdout]     |
[INFO] [stdout] 926 |             let n = hs.validator_pks.len();
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:900:37
[INFO] [stdout]     |
[INFO] [stdout] 900 |     fn handle_qc(&mut self, qc: QC, sender_id: ValidatorId) -> Result<Option<Hash>, String> {
[INFO] [stdout]     |                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:944:49
[INFO] [stdout]     |
[INFO] [stdout] 944 |     fn handle_view_change(&mut self, view: u64, sender_id: ValidatorId, timeout_qc: Option<QC>) -> Result<(), String> {
[INFO] [stdout]     |                                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `am_consensus_leader`
[INFO] [stdout]     --> src/node.rs:1287:13
[INFO] [stdout]      |
[INFO] [stdout] 1287 |         let am_consensus_leader: bool = if let Some(hs) = self.hotstuff.as_ref() {
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_am_consensus_leader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/node.rs:1382:13
[INFO] [stdout]      |
[INFO] [stdout] 1382 |         let mut header = crate::types::BlockHeader {
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `epoch_seed`
[INFO] [stdout]    --> src/fees.rs:392:13
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let epoch_seed = [7u8; 32];
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_epoch_seed`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/fees.rs:415:13
[INFO] [stdout]     |
[INFO] [stdout] 415 |         let mut mk_header = |proposer_id: u64| {
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/node.rs:493:17
[INFO] [stdout]     |
[INFO] [stdout] 493 |                 _ => {}
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/node.rs:493:17
[INFO] [stdout]     |
[INFO] [stdout] 485 |                 Tx::Commit(c) => {
[INFO] [stdout]     |                 ------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 489 |                 Tx::Avail(a) => {
[INFO] [stdout]     |                 ------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 493 |                 _ => {}
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:755:50
[INFO] [stdout]     |
[INFO] [stdout] 755 |     fn handle_proposal(&mut self, block: &Block, sender_id: ValidatorId) -> Result<(), String> {
[INFO] [stdout]     |                                                  ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:873:43
[INFO] [stdout]     |
[INFO] [stdout] 873 |     fn handle_vote(&mut self, vote: Vote, sender_id: ValidatorId) -> Result<Option<Hash>, String> {
[INFO] [stdout]     |                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/node.rs:926:17
[INFO] [stdout]     |
[INFO] [stdout] 926 |             let n = hs.validator_pks.len();
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:900:37
[INFO] [stdout]     |
[INFO] [stdout] 900 |     fn handle_qc(&mut self, qc: QC, sender_id: ValidatorId) -> Result<Option<Hash>, String> {
[INFO] [stdout]     |                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_id`
[INFO] [stdout]    --> src/node.rs:944:49
[INFO] [stdout]     |
[INFO] [stdout] 944 |     fn handle_view_change(&mut self, view: u64, sender_id: ValidatorId, timeout_qc: Option<QC>) -> Result<(), String> {
[INFO] [stdout]     |                                                 ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `am_consensus_leader`
[INFO] [stdout]     --> src/node.rs:1287:13
[INFO] [stdout]      |
[INFO] [stdout] 1287 |         let am_consensus_leader: bool = if let Some(hs) = self.hotstuff.as_ref() {
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_am_consensus_leader`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/node.rs:1382:13
[INFO] [stdout]      |
[INFO] [stdout] 1382 |         let mut header = crate::types::BlockHeader {
[INFO] [stdout]      |             ----^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commitment`
[INFO] [stdout]    --> src/chain.rs:507:49
[INFO] [stdout]     |
[INFO] [stdout] 507 |                 Event::ThresholdShareReceived { commitment, validator_id: _ } => {
[INFO] [stdout]     |                                                 ^^^^^^^^^^ help: try ignoring the field: `commitment: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `commitment`
[INFO] [stdout]    --> src/chain.rs:699:49
[INFO] [stdout]     |
[INFO] [stdout] 699 |                 Event::ThresholdShareReceived { commitment, validator_id: _ } => {
[INFO] [stdout]     |                                                 ^^^^^^^^^^ help: try ignoring the field: `commitment: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `proposer_id`
[INFO] [stdout]     --> src/chain.rs:2052:13
[INFO] [stdout]      |
[INFO] [stdout] 2052 |         let proposer_id: u64 = 1;
[INFO] [stdout]      |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_proposer_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/chain.rs:2056:13
[INFO] [stdout]      |
[INFO] [stdout] 2056 |         let mut build_block_vortex_ok = |chain: &Chain,
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/chain.rs:2137:13
[INFO] [stdout]      |
[INFO] [stdout] 2137 |         let mut build_block_vortex_raw = |chain: &Chain,
[INFO] [stdout]      |             ----^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CIPHERTEXT_SIZE` is never used
[INFO] [stdout]   --> src/mempool/encrypted.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const CIPHERTEXT_SIZE: usize = 48 + 96; // G1 point (48) + G2 signature (96)
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_block_vortex_ok` is never used
[INFO] [stdout]     --> src/chain.rs:1188:8
[INFO] [stdout]      |
[INFO] [stdout] 1188 |     fn build_block_vortex_ok(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fake_vrf_fields` is never used
[INFO] [stdout]     --> src/node.rs:1699:8
[INFO] [stdout]      |
[INFO] [stdout] 1699 |     fn fake_vrf_fields(proposer_id: u64) -> ([u8; 32], Vec<u8>) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `pending_len` is never used
[INFO] [stdout]   --> src/consensus/mod.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl VoteAggregator {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 51 |     fn pending_len(&self) -> usize { self.pending_indices.len() }
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hex48` is never used
[INFO] [stdout]    --> src/rpc.rs:149:4
[INFO] [stdout]     |
[INFO] [stdout] 149 | fn hex48(s: &str) -> [u8; 48] {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/p2p.rs:74:10
[INFO] [stdout]    |
[INFO] [stdout] 74 |     Ping(ping::Event),
[INFO] [stdout]    |     ---- ^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 74 -     Ping(ping::Event),
[INFO] [stdout] 74 +     Ping(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/p2p.rs:75:14
[INFO] [stdout]    |
[INFO] [stdout] 75 |     Kademlia(kad::Event),
[INFO] [stdout]    |     -------- ^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 75 -     Kademlia(kad::Event),
[INFO] [stdout] 75 +     Kademlia(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `validator_to_peer` and `use_gossip_fallback` are never read
[INFO] [stdout]    --> src/p2p.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub struct ConsensusNetwork {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 147 |     validator_to_peer: Arc<Mutex<HashMap<ValidatorId, PeerId>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     use_gossip_fallback: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConsensusNetwork` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `GetConnectedPeers` and `TriggerDiscovery` are never constructed
[INFO] [stdout]    --> src/p2p.rs:164:5
[INFO] [stdout]     |
[INFO] [stdout] 160 | enum NetworkCommand {
[INFO] [stdout]     |      -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 164 |     GetConnectedPeers,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 165 |     TriggerDiscovery,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NetworkCommand` 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 `target_peers` and `max_peers` are never read
[INFO] [stdout]    --> src/p2p.rs:499:5
[INFO] [stdout]     |
[INFO] [stdout] 490 | struct NetworkTask {
[INFO] [stdout]     |        ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 499 |     target_peers: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 500 |     max_peers: usize,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dummy_block` is never used
[INFO] [stdout]    --> src/p2p.rs:781:8
[INFO] [stdout]     |
[INFO] [stdout] 781 |     fn dummy_block() -> Block {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/node.rs:929:13
[INFO] [stdout]     |
[INFO] [stdout] 929 |             drop(hs);
[INFO] [stdout]     |             ^^^^^--^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  argument has type `&mut consensus::HotStuff`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 929 -             drop(hs);
[INFO] [stdout] 929 +             let _ = hs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/node.rs:962:17
[INFO] [stdout]     |
[INFO] [stdout] 962 |                 drop(hotstuff);
[INFO] [stdout]     |                 ^^^^^--------^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      argument has type `&mut consensus::HotStuff`
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 962 -                 drop(hotstuff);
[INFO] [stdout] 962 +                 let _ = hotstuff;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]     --> src/node.rs:1015:25
[INFO] [stdout]      |
[INFO] [stdout] 1015 |                         drop(hs2);
[INFO] [stdout]      |                         ^^^^^---^
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              argument has type `&mut consensus::HotStuff`
[INFO] [stdout]      |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]      |
[INFO] [stdout] 1015 -                         drop(hs2);
[INFO] [stdout] 1015 +                         let _ = hs2;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hex32` is never used
[INFO] [stdout]   --> src/main.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn hex32(h: &Hash) -> String { hex::encode(h) }
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `backoff_num`, `backoff_den`, `ewma_alpha_num`, and `ewma_alpha_den` are never read
[INFO] [stdout]   --> src/types.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct Pacemaker {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub backoff_num: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 83 |     pub backoff_den: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub ewma_alpha_num: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 88 |     pub ewma_alpha_den: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Pacemaker` 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: methods `expired`, `bump_backoff`, and `observe_qc_latency` are never used
[INFO] [stdout]    --> src/types.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 94  | impl Pacemaker {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn expired(&self, now_ms: u128) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn bump_backoff(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub fn observe_qc_latency(&mut self, sample_ms: u64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `covers` is never used
[INFO] [stdout]    --> src/types.rs:315:12
[INFO] [stdout]     |
[INFO] [stdout] 280 | impl AccessList {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 315 |     pub fn covers(&self, required: &[StateKey]) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `expires_at` is never read
[INFO] [stdout]    --> src/types.rs:383:9
[INFO] [stdout]     |
[INFO] [stdout] 381 | pub struct CommitmentMeta {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] 382 |     pub owner: Address,
[INFO] [stdout] 383 |     pub expires_at: u64,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CommitmentMeta` 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 `owner` and `expires_at` are never read
[INFO] [stdout]    --> src/types.rs:394:38
[INFO] [stdout]     |
[INFO] [stdout] 394 |     CommitStored { commitment: Hash, owner: Address, expires_at: u64 },
[INFO] [stdout]     |     ------------                     ^^^^^           ^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Event` 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 `commitment` is never read
[INFO] [stdout]    --> src/types.rs:399:35
[INFO] [stdout]     |
[INFO] [stdout] 399 |     ThresholdDecryptionComplete { commitment: Hash },
[INFO] [stdout]     |     ---------------------------   ^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Event` 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: multiple variants are never constructed
[INFO] [stdout]    --> src/types.rs:396:5
[INFO] [stdout]     |
[INFO] [stdout] 393 | pub enum Event {
[INFO] [stdout]     |          ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 396 |     CommitExpired { commitment: Hash },
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 397 |     AvailabilityRecorded { commitment: Hash },
[INFO] [stdout] 398 |     ThresholdShareReceived { commitment: Hash, validator_id: ValidatorId },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 401 |     StakeRegister { address: Address, ed25519: [u8; 32], bls: [u8; 48], vrf: [u8; 32] },
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 402 |     StakeBond { address: Address, amount: u64 },
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 403 |     StakeUnbond { address: Address, amount: u64 },
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 404 |     StakeActivate { address: Address },
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 405 |     StakeDeactivate { address: Address },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Event` 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: constant `ZERO_ADDRESS` is never used
[INFO] [stdout]   --> src/state.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const ZERO_ADDRESS: &str = "0x0000000000000000000000000000000000000000";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `WrongParent` and `ProposerKeyMismatch` are never constructed
[INFO] [stdout]   --> src/stf.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum BlockError {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 50 |     WrongParent,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     ProposerKeyMismatch,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BlockError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockResult` is never constructed
[INFO] [stdout]   --> src/stf.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct BlockResult { 
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DOM_ORDER` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const DOM_ORDER:  &[u8] = b"ORDER";
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REVEAL_PAIR_DOMAIN` is never used
[INFO] [stdout]   --> src/crypto/mod.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const REVEAL_PAIR_DOMAIN: &[u8] = b"CAR_REVEAL_PAIR_V1";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reveal_order_key` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn reveal_order_key(commitment: &Hash, randomness: &Hash) -> Hash {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_reveal_pair` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn hash_reveal_pair(commitment: &Hash, tx_hash: &Hash) -> Hash {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `clear`, `len`, and `is_empty` are never used
[INFO] [stdout]   --> src/crypto/bls.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl BlsAggregate {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn len(&self) -> usize {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_signer_pks_from_bitmap` is never used
[INFO] [stdout]    --> src/crypto/bls.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub fn collect_signer_pks_from_bitmap(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `bitmap` and `pks` are never read
[INFO] [stdout]    --> src/crypto/bls.rs:218:20
[INFO] [stdout]     |
[INFO] [stdout] 218 |     BitmapLength { bitmap: usize, pks: usize },
[INFO] [stdout]     |     ------------   ^^^^^^         ^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BlsQcError` 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 `have` and `need` are never read
[INFO] [stdout]    --> src/crypto/bls.rs:220:20
[INFO] [stdout]     |
[INFO] [stdout] 220 |     QuorumNotMet { have: usize, need: usize },
[INFO] [stdout]     |     ------------   ^^^^         ^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BlsQcError` 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 `index` is never read
[INFO] [stdout]    --> src/crypto/bls.rs:221:23
[INFO] [stdout]     |
[INFO] [stdout] 221 |     PublicKeyDecode { index: usize },
[INFO] [stdout]     |     ---------------   ^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BlsQcError` 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 `keypair_from_seed` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:185:12
[INFO] [stdout]     |
[INFO] [stdout] 185 |     pub fn keypair_from_seed(seed: [u8; 32]) -> (SigningKey, VerifyingKey) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_commit_fields` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:192:12
[INFO] [stdout]     |
[INFO] [stdout] 192 |     pub fn sign_commit_fields(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_avail_fields` is never used
[INFO] [stdout]    --> src/crypto/mod.rs:207:12
[INFO] [stdout]     |
[INFO] [stdout] 207 |     pub fn sign_avail_fields(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `put_bytes` is never used
[INFO] [stdout]    --> src/codec.rs:233:8
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub fn put_bytes(v: &mut Vec<u8>, bytes: &[u8]) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `max_avails_per_block`, `max_reveals_per_block`, and `max_commits_per_block` are never read
[INFO] [stdout]   --> src/mempool/mod.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct MempoolConfig {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 19 |     pub max_avails_per_block: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     pub max_reveals_per_block: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     pub max_commits_per_block: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MempoolConfig` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NonceGap`, `TooLarge`, `Stale`, and `NotYetValid` are never constructed
[INFO] [stdout]   --> src/mempool/mod.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum AdmissionError {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 42 |     NonceGap,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 43 |     MempoolFullForAccount,
[INFO] [stdout] 44 |     TooLarge,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 45 |     Duplicate,
[INFO] [stdout] 46 |     Stale,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 47 |     NotYetValid,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AdmissionError` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `missing` is never read
[INFO] [stdout]    --> src/mempool/mod.rs:115:26
[INFO] [stdout]     |
[INFO] [stdout] 115 |     InclusionListUnmet { missing: Vec<CommitmentId> },
[INFO] [stdout]     |     ------------------   ^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SelectError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `NothingToDo` is never constructed
[INFO] [stdout]    --> src/mempool/mod.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub enum SelectError {
[INFO] [stdout]     |          ----------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 117 |     NothingToDo,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SelectError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `insert_avail` is never used
[INFO] [stdout]    --> src/mempool/mod.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub trait Mempool: Send + Sync {
[INFO] [stdout]     |           ------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn insert_avail(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `debug_read` and `debug_write` are never used
[INFO] [stdout]    --> src/mempool/mod.rs:198:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | impl MempoolImpl {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn debug_read(
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn debug_write(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `access_list_digest` are never read
[INFO] [stdout]   --> src/mempool/queues.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct CommitQueueItem {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 19 |     pub id: TxId,
[INFO] [stdout]    |         ^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub access_list_digest: Hash, // hash of canonical AL bytes
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]   --> src/mempool/queues.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct AvailQueueItem {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 29 |     pub id: TxId,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `access_list_digest` are never read
[INFO] [stdout]   --> src/mempool/queues.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct RevealQueueItem {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 39 |     pub id: TxId,
[INFO] [stdout]    |         ^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub access_list_digest: Hash, // digest used when recomputing commitment
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EvictKind` is never used
[INFO] [stdout]   --> src/mempool/queues.rs:50:10
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub enum EvictKind {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `precheck_avail` and `insert_avail_minimal` are never used
[INFO] [stdout]    --> src/mempool/queues.rs:214:8
[INFO] [stdout]     |
[INFO] [stdout] 213 | impl AvailQueue {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 214 |     fn precheck_avail(&self, a: &AvailTx) -> Result<(), AdmissionError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn insert_avail_minimal(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `evict_any` is never used
[INFO] [stdout]    --> src/mempool/queues.rs:344:12
[INFO] [stdout]     |
[INFO] [stdout] 343 | impl Queues {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] 344 |     pub fn evict_any(&mut self, id: &crate::mempool::TxId) -> EvictKind {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `producer_id` and `signature` are never read
[INFO] [stdout]   --> src/mempool/workers.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Batch {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub producer_id: ValidatorId,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 22 |     /// Signature attesting to the batch contents.
[INFO] [stdout] 23 |     pub signature: [u8; 64],
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Batch` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `children_of` is never used
[INFO] [stdout]   --> src/mempool/workers.rs:79:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl BatchStore {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn children_of(&self, id: &Hash) -> Vec<Hash> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkerHandle` is never constructed
[INFO] [stdout]    --> src/mempool/workers.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct WorkerHandle {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_workers` is never used
[INFO] [stdout]    --> src/mempool/workers.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn spawn_workers(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CIPHERTEXT_SIZE` is never used
[INFO] [stdout]   --> src/mempool/encrypted.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const CIPHERTEXT_SIZE: usize = 48 + 96; // G1 point (48) + G2 signature (96)
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `domain_hash` is never used
[INFO] [stdout]   --> src/mempool/encrypted.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | impl ThresholdPublicKey {
[INFO] [stdout]    | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn domain_hash(&self) -> Hash {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `size` is never used
[INFO] [stdout]    --> src/mempool/encrypted.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl ThresholdCiphertext {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] 110 |     /// Total size of this ciphertext in bytes
[INFO] [stdout] 111 |     pub fn size(&self) -> usize {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `remove_validator_share` is never used
[INFO] [stdout]    --> src/mempool/encrypted.rs:205:12
[INFO] [stdout]     |
[INFO] [stdout] 183 | impl ThresholdEngine {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn remove_validator_share(&mut self, validator_id: ValidatorId) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_share_consistency` is never used
[INFO] [stdout]    --> src/mempool/encrypted.rs:900:12
[INFO] [stdout]     |
[INFO] [stdout] 900 |     pub fn verify_share_consistency(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `pending_len` is never used
[INFO] [stdout]   --> src/consensus/mod.rs:51:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl VoteAggregator {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 51 |     fn pending_len(&self) -> usize { self.pending_indices.len() }
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ProposalUnsafe` and `Unimplemented` are never constructed
[INFO] [stdout]    --> src/consensus/mod.rs:119:5
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub enum Error {
[INFO] [stdout]     |          ----- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 119 |     ProposalUnsafe,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 120 |     Unimplemented,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Error` 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 `debug_aggregators`, `debug_parent_index_len`, `debug_parent_index_sample`, `on_new_slot`, and `maybe_propose` are never used
[INFO] [stdout]    --> src/consensus/mod.rs:170:12
[INFO] [stdout]     |
[INFO] [stdout] 149 | impl HotStuff {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn debug_aggregators(&self) -> Vec<(u64, Hash, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn debug_parent_index_len(&self) -> usize { self.parent_index.len() }
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn debug_parent_index_sample(&self, limit: usize) -> Vec<(Hash, Hash)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn on_new_slot(&mut self, now_ms: u128) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     pub fn maybe_propose(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_SLOT_MS` is never used
[INFO] [stdout]  --> src/consensus/dev_loop.rs:4:11
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub const DEFAULT_SLOT_MS: u64 = 1000;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_LIMITS` is never used
[INFO] [stdout]  --> src/consensus/dev_loop.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub const DEFAULT_LIMITS: BlockSelectionLimits = BlockSelectionLimits { max_commits: 1024, max_avails: 1024, max_reveals: 1024 };
[INFO] [stdout]   |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DevLoopConfig` is never constructed
[INFO] [stdout]  --> src/consensus/dev_loop.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct DevLoopConfig { 
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DevLoop` is never constructed
[INFO] [stdout]   --> src/consensus/dev_loop.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct DevLoop<N> { 
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `height` and `produce_block` are never used
[INFO] [stdout]   --> src/consensus/dev_loop.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub trait DevNode {
[INFO] [stdout]    |           ------- methods in this trait
[INFO] [stdout] 20 |     fn height(&self) -> u64;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 21 |     fn produce_block(&mut self, limits: BlockSelectionLimits) -> Result<(BuiltBlock, ApplyResult), ProduceError>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `tick_once`, `run_for_slots`, `run_until_height`, and `run_for_duration` are never used
[INFO] [stdout]   --> src/consensus/dev_loop.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl<N> DevLoop<N> where N: DevNode {
[INFO] [stdout]    | ----------------------------------- associated items in this implementation
[INFO] [stdout] 26 |     pub fn new(node: N, cfg: DevLoopConfig) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     fn tick_once(&mut self) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn run_for_slots(&mut self, n: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn run_until_height(&mut self, h: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn run_for_duration(&mut self, millis: u64) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `avail_target_avails_per_block` and `min_avail` are never read
[INFO] [stdout]   --> src/fees.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 6  | pub struct FeeParams {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub avail_target_avails_per_block: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub min_avail: u64,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FeeParams` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `burn_bps` is never read
[INFO] [stdout]   --> src/fees.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub struct FeeSplitBps {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 80 |     pub burn_bps: u16,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `vote`, `leader_id`, `due_ms`, and `retries` are never read
[INFO] [stdout]   --> src/node.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | struct PendingVoteRetry {
[INFO] [stdout]    |        ---------------- fields in this struct
[INFO] [stdout] 28 |     vote: Vote,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 29 |     leader_id: ValidatorId,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 30 |     due_ms: u128,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 31 |     retries: u8,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PendingVoteRetry` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/node.rs:59:15
[INFO] [stdout]    |
[INFO] [stdout] 59 |     Selection(SelectError),
[INFO] [stdout]    |     --------- ^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProduceError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 59 -     Selection(SelectError),
[INFO] [stdout] 59 +     Selection(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/node.rs:60:17
[INFO] [stdout]    |
[INFO] [stdout] 60 |     HeaderBuild(String),
[INFO] [stdout]    |     ----------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProduceError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 60 -     HeaderBuild(String),
[INFO] [stdout] 60 +     HeaderBuild(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `slot`, `leader`, and `mine` are never read
[INFO] [stdout]   --> src/node.rs:62:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |     NotProposer {
[INFO] [stdout]    |     ----------- fields in this variant
[INFO] [stdout] 62 |         slot: u64,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 63 |         leader: Option<ValidatorId>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 64 |         mine: Option<ValidatorId>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProduceError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PacemakerConfig` is never constructed
[INFO] [stdout]   --> src/node.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub struct PacemakerConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConsensusConfig` is never constructed
[INFO] [stdout]   --> src/node.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct ConsensusConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `leader_miss` and `last_early_skip_view` are never read
[INFO] [stdout]    --> src/node.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 87  | pub struct Node {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 113 |     leader_miss: HashMap<ValidatorId, (u32, u128)>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 114 |     /// Avoid repeating early-skip within the same view
[INFO] [stdout] 115 |     last_early_skip_view: Option<u64>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/node.rs:183:8
[INFO] [stdout]      |
[INFO] [stdout] 167  | impl Node {
[INFO] [stdout]      | --------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 183  |     fn process_pending_vote_retries(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242  |     pub fn new_with_consensus(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338  |     fn collect_active_bls_pubkeys_in_order(&self) -> Result<Vec<[u8;48]>> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355  |     fn resolve_my_validator_id(&self) -> Result<ValidatorId> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 367  |     fn load_best_qc_from_store(&self) -> Result<Option<QC>> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385  |     pub fn with_vrf_signer(mut self, vrf: SchnorrkelVrfSigner) -> Self {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 391  |     pub fn set_consensus_network(&mut self, network: ConsensusNetwork) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396  |     pub fn consensus_network(&self) -> Option<&ConsensusNetwork> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 401  |     pub fn hotstuff_mut(&mut self) -> Option<&mut HotStuff> {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406  |     pub fn hotstuff(&self) -> Option<&HotStuff> {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 411  |     pub fn set_hotstuff(&mut self, hotstuff: HotStuff) {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 591  |     pub fn process_consensus_messages(&mut self) -> Result<Vec<Hash>, String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 682  |     pub fn process_consensus_message(&mut self, msg: crate::p2p::ConsensusMessage) -> Result<Vec<Hash>, String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 873  |     fn handle_vote(&mut self, vote: Vote, sender_id: ValidatorId) -> Result<Option<Hash>, String> {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 900  |     fn handle_qc(&mut self, qc: QC, sender_id: ValidatorId) -> Result<Option<Hash>, String> {
[INFO] [stdout]      |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 944  |     fn handle_view_change(&mut self, view: u64, sender_id: ValidatorId, timeout_qc: Option<QC>) -> Result<(), String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 973  |     pub fn check_pacemaker_timeout(&mut self) -> Result<(), String> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1141 |     pub fn tip_hash(&self) -> Hash {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1145 |     pub fn proposer_pubkey(&self) -> [u8; 32] {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1149 |     pub fn fee_state(&self) -> &FeeState {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1154 |     pub fn current_slot(&self) -> u64 { self.chain.current_slot() }
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1157 |     pub fn slot_ms(&self) -> u64 { self.chain.clock.slot_ms }
[INFO] [stdout]      |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1160 |     pub fn set_slot_ms(&mut self, ms: u64) { self.chain.clock.slot_ms = ms; }
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1171 |     pub fn set_commit_fee_base(&mut self, base: u64) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1175 |     pub fn burned_total(&self) -> u64 {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1187 |     pub fn rpc_insert_commit(&self, commit: CommitTx, fee_bid: u128) -> Result<TxId, AdmissionError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1198 |     pub fn rpc_insert_avail(&self, avail: AvailTx, fee_bid: u128) -> Result<TxId, AdmissionError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1209 |     pub fn rpc_insert_reveal(&self, reveal: RevealTx, fee_bid: u128) -> Result<TxId, AdmissionError> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1222 |     pub fn credit_balance_direct(&mut self, addr: &str, amount: u64) -> u64 {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1621 |     pub fn debug_hotstuff_aggregators(&self) -> Option<Vec<(u64, Hash, usize, usize)>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1629 |     pub fn debug_parent_index_len(&self) -> Option<usize> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1634 |     pub fn debug_parent_index_sample(&self, limit: usize) -> Option<Vec<(Hash, Hash)>> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1639 |     pub fn debug_block_store_sample(&self, limit: usize) -> Vec<(Hash, u64, u64, Hash, u64)> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1648 |     pub fn debug_pending_commits(&self) -> Vec<Hash> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1653 |     pub fn debug_last_proposed_view(&self) -> Option<u64> { self.last_proposed_view }
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1656 |     pub fn debug_mempool_counts(&self) -> (usize, usize, usize) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1661 |     pub fn debug_last_apply_error(&self) -> Option<String> { self.last_apply_error.clone() }
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1662 |
[INFO] [stdout] 1663 |     pub fn debug_last_vote_skip_reason(&self) -> Option<String> { self.last_vote_skip_reason.clone() }
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 1664 |     pub fn debug_last_vote_skip_view(&self) -> Option<u64> { self.last_vote_skip_view }
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1667 |     pub fn debug_block_store_len(&self) -> usize { self.block_store.len() }
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fake_vrf_fields` is never used
[INFO] [stdout]     --> src/node.rs:1699:8
[INFO] [stdout]      |
[INFO] [stdout] 1699 |     fn fake_vrf_fields(proposer_id: u64) -> ([u8; 32], Vec<u8>) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `slash_history` is never read
[INFO] [stdout]   --> src/chain.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct Chain {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub slash_history: HashMap<ValidatorId, u64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `burned_total` is never read
[INFO] [stdout]   --> src/chain.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct ApplyResult {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub burned_total: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ApplyResult` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/chain.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout] 78  | impl Chain {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn current_slot_at(&self, now_ms: u128) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn current_slot(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub fn record_leader_miss(&mut self, vid: ValidatorId) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn update_randomness_with_block(&mut self, header: &crate::types::BlockHeader) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 797 |     pub fn add_threshold_share(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 835 |     pub fn remove_threshold_shares(&mut self, commitment: &Hash) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 840 |     pub fn can_decrypt_commitment(&self, commitment: &Hash) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 850 |     pub fn cleanup_old_shares(&mut self, commitments: &crate::state::Commitments) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 879 |     pub fn apply_slash(&mut self, evidence: &SlashingEvidence, cfg: &StakingConfig) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_block_vortex_ok` is never used
[INFO] [stdout]     --> src/chain.rs:1188:8
[INFO] [stdout]      |
[INFO] [stdout] 1188 |     fn build_block_vortex_ok(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Jailed` is never constructed
[INFO] [stdout]  --> src/pos/registry.rs:8:46
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum ValidatorStatus { Active, Inactive, Jailed }
[INFO] [stdout]   |          ---------------                     ^^^^^^
[INFO] [stdout]   |          |
[INFO] [stdout]   |          variant in this enum
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ValidatorStatus` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `unbonding_epochs` is never read
[INFO] [stdout]   --> src/pos/registry.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct StakingConfig {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 22 |     pub min_stake: u128,
[INFO] [stdout] 23 |     pub unbonding_epochs: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StakingConfig` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PosError` is never used
[INFO] [stdout]   --> src/pos/registry.rs:35:10
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub enum PosError {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/pos/registry.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 42  | impl ValidatorSet {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     fn get_mut(&mut self, id: ValidatorId) -> Option<&mut Validator> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn index_of(&self, id: ValidatorId) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn bond(&mut self, id: ValidatorId, amount: u128, _cfg: &StakingConfig) -> Result<(), PosError> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn unbond(&mut self, id: ValidatorId, amount: u128, cfg: &StakingConfig) -> Result<(), PosError> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn activate(&mut self, id: ValidatorId) -> Result<(), PosError> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn deactivate(&mut self, id: ValidatorId) -> Result<(), PosError> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn jail(&mut self, id: ValidatorId) -> Result<(), PosError> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     fn recompute_total_stake(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `epoch` and `epoch_slots` are never used
[INFO] [stdout]   --> src/pos/schedule.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 7  | pub trait ProposerSchedule {
[INFO] [stdout]    |           ---------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn epoch(&self) -> u64;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 23 |     fn epoch_slots(&self) -> u64;
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/pos/schedule.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 45 | impl AliasSchedule {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 46 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `P2PBehaviour` is never constructed
[INFO] [stdout]   --> src/p2p.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct P2PBehaviour {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/p2p.rs:71:15
[INFO] [stdout]    |
[INFO] [stdout] 71 |     Gossipsub(gossipsub::Event),
[INFO] [stdout]    |     --------- ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 71 -     Gossipsub(gossipsub::Event),
[INFO] [stdout] 71 +     Gossipsub(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/p2p.rs:72:10
[INFO] [stdout]    |
[INFO] [stdout] 72 |     Mdns(mdns::Event),
[INFO] [stdout]    |     ---- ^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 72 -     Mdns(mdns::Event),
[INFO] [stdout] 72 +     Mdns(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/p2p.rs:73:14
[INFO] [stdout]    |
[INFO] [stdout] 73 |     Identify(identify::Event),
[INFO] [stdout]    |     -------- ^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 73 -     Identify(identify::Event),
[INFO] [stdout] 73 +     Identify(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/p2p.rs:74:10
[INFO] [stdout]    |
[INFO] [stdout] 74 |     Ping(ping::Event),
[INFO] [stdout]    |     ---- ^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 74 -     Ping(ping::Event),
[INFO] [stdout] 74 +     Ping(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/p2p.rs:75:14
[INFO] [stdout]    |
[INFO] [stdout] 75 |     Kademlia(kad::Event),
[INFO] [stdout]    |     -------- ^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 75 -     Kademlia(kad::Event),
[INFO] [stdout] 75 +     Kademlia(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `P2PConfig` is never constructed
[INFO] [stdout]    --> src/p2p.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub struct P2PConfig {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/p2p.rs:139:5
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub struct ConsensusNetwork {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 139 |     message_rx: Arc<Mutex<broadcast::Receiver<ConsensusMessage>>>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 140 |     /// Channel sender for publishing messages
[INFO] [stdout] 141 |     message_tx: broadcast::Sender<ConsensusMessage>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     peers: Arc<Mutex<HashMap<PeerId, ValidatorId>>>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 146 |     /// Reverse mapping validator -> peer (best known)
[INFO] [stdout] 147 |     validator_to_peer: Arc<Mutex<HashMap<ValidatorId, PeerId>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     local_peer_id: PeerId,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 151 |     /// Discovery thresholds
[INFO] [stdout] 152 |     min_peers: usize,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 153 |     target_peers: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 154 |     max_peers: usize,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 155 |     use_gossip_fallback: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConsensusNetwork` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/p2p.rs:161:22
[INFO] [stdout]     |
[INFO] [stdout] 161 |     BroadcastMessage(ConsensusMessage),
[INFO] [stdout]     |     ---------------- ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NetworkCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 161 -     BroadcastMessage(ConsensusMessage),
[INFO] [stdout] 161 +     BroadcastMessage(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/p2p.rs:162:21
[INFO] [stdout]     |
[INFO] [stdout] 162 |     SendToValidator(ValidatorId, ConsensusMessage),
[INFO] [stdout]     |     --------------- ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NetworkCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 162 -     SendToValidator(ValidatorId, ConsensusMessage),
[INFO] [stdout] 162 +     SendToValidator((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ConnectPeer`, `GetConnectedPeers`, and `TriggerDiscovery` are never constructed
[INFO] [stdout]    --> src/p2p.rs:163:5
[INFO] [stdout]     |
[INFO] [stdout] 160 | enum NetworkCommand {
[INFO] [stdout]     |      -------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 163 |     ConnectPeer(Multiaddr),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 164 |     GetConnectedPeers,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 165 |     TriggerDiscovery,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NetworkCommand` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/p2p.rs:170:18
[INFO] [stdout]     |
[INFO] [stdout] 168 | impl ConsensusNetwork {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 169 |     /// Create a new consensus network instance with P2P
[INFO] [stdout] 170 |     pub async fn new(validator_id: ValidatorId, config: P2PConfig) -> Result<Self> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     pub fn connect_peer(&self, addr: Multiaddr) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     pub fn broadcast_block_response(&self, block: Block) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 395 |     pub fn broadcast_view_change(&self, view: u64, timeout_qc: Option<QC>) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 413 |     pub fn try_recv_message(&self) -> Option<ConsensusMessage> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 431 |     pub fn subscribe(&self) -> broadcast::Receiver<ConsensusMessage> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 450 |     pub fn validator_id(&self) -> ValidatorId {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 455 |     pub fn peer_id(&self) -> PeerId {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 460 |     pub fn connected_peers(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 465 |     pub fn peer_ids(&self) -> Vec<PeerId> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 470 |     pub fn install_direct_peers(&self, map: HashMap<ValidatorId, broadcast::Sender<ConsensusMessage>>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NetworkTask` is never constructed
[INFO] [stdout]    --> src/p2p.rs:490:8
[INFO] [stdout]     |
[INFO] [stdout] 490 | struct NetworkTask {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/p2p.rs:505:14
[INFO] [stdout]     |
[INFO] [stdout] 504 | impl NetworkTask {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 505 |     async fn run(mut self) {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 529 |     async fn handle_command(&mut self, command: NetworkCommand) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 561 |     async fn handle_swarm_event(&mut self, event: SwarmEvent<P2PEvent>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 616 |     async fn handle_gossipsub_message(&mut self, source: PeerId, message: gossipsub::Message) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 639 |     async fn broadcast_consensus_message(&mut self, msg: ConsensusMessage) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 661 |     async fn send_to_validator(&mut self, _validator_id: ValidatorId, msg: ConsensusMessage) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 666 |     async fn check_and_discover(&mut self) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 675 |     async fn run_discovery_round(&mut self) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_network` is never used
[INFO] [stdout]    --> src/p2p.rs:691:14
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub async fn create_test_network(validator_ids: Vec<ValidatorId>) -> Result<Vec<ConsensusNetwork>, anyhow::Error> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dummy_block` is never used
[INFO] [stdout]    --> src/p2p.rs:781:8
[INFO] [stdout]     |
[INFO] [stdout] 781 |     fn dummy_block() -> Block {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/node.rs:929:13
[INFO] [stdout]     |
[INFO] [stdout] 929 |             drop(hs);
[INFO] [stdout]     |             ^^^^^--^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  argument has type `&mut consensus::HotStuff`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 929 -             drop(hs);
[INFO] [stdout] 929 +             let _ = hs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/node.rs:962:17
[INFO] [stdout]     |
[INFO] [stdout] 962 |                 drop(hotstuff);
[INFO] [stdout]     |                 ^^^^^--------^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      argument has type `&mut consensus::HotStuff`
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 962 -                 drop(hotstuff);
[INFO] [stdout] 962 +                 let _ = hotstuff;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]     --> src/node.rs:1015:25
[INFO] [stdout]      |
[INFO] [stdout] 1015 |                         drop(hs2);
[INFO] [stdout]      |                         ^^^^^---^
[INFO] [stdout]      |                              |
[INFO] [stdout]      |                              argument has type `&mut consensus::HotStuff`
[INFO] [stdout]      |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]      |
[INFO] [stdout] 1015 -                         drop(hs2);
[INFO] [stdout] 1015 +                         let _ = hs2;
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `l1-blockchain` (lib test); 52 warnings emitted
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/rustup-home/toolchains/d98a5da813da67eb189387b8ccfb73cf481275d8/bin/rustc --crate-name l1_blockchain --edition=2024 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 --test --cfg 'feature="default"' --cfg 'feature="vrf_deterministic"' --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values("default", "vrf_deterministic"))' -C metadata=bb57a0b01218228f -C extra-filename=-47e0b7ea4af923be --out-dir /opt/rustwide/target/debug/deps -L dependency=/opt/rustwide/target/debug/deps --extern anyhow=/opt/rustwide/target/debug/deps/libanyhow-08849a096cfef27c.rlib --extern axum=/opt/rustwide/target/debug/deps/libaxum-0ae9d161153da05e.rlib --extern bitvec=/opt/rustwide/target/debug/deps/libbitvec-99c591f7194eb304.rlib --extern blst=/opt/rustwide/target/debug/deps/libblst-b43f463615ffe82c.rlib --extern ed25519_dalek=/opt/rustwide/target/debug/deps/libed25519_dalek-768f81ba7eedec68.rlib --extern futures=/opt/rustwide/target/debug/deps/libfutures-633540c7917fbbac.rlib --extern hex=/opt/rustwide/target/debug/deps/libhex-f8780b52ba33bd3a.rlib --extern libp2p=/opt/rustwide/target/debug/deps/liblibp2p-17b2e7ee4e2d25ea.rlib --extern proptest=/opt/rustwide/target/debug/deps/libproptest-b55b722c3457c2c8.rlib --extern rand=/opt/rustwide/target/debug/deps/librand-c9c5d38b109e172b.rlib --extern schnorrkel=/opt/rustwide/target/debug/deps/libschnorrkel-017a8c7ec7280dd0.rlib --extern serde=/opt/rustwide/target/debug/deps/libserde-b2e9defc7022f3ca.rlib --extern serde_json=/opt/rustwide/target/debug/deps/libserde_json-23cf834785d43532.rlib --extern serde_with=/opt/rustwide/target/debug/deps/libserde_with-003e18f1623dfe6c.rlib --extern sha2=/opt/rustwide/target/debug/deps/libsha2-551e94937b1490f2.rlib --extern time=/opt/rustwide/target/debug/deps/libtime-30694d9e27bf7e49.rlib --extern tokio=/opt/rustwide/target/debug/deps/libtokio-be55a7bbba4767c5.rlib --extern tracing=/opt/rustwide/target/debug/deps/libtracing-ee2e56ab9e3937ed.rlib --cap-lints=forbid -Copt-level=3 -L native=/opt/rustwide/target/debug/build/blst-a67b58a018e83d93/out -L native=/opt/rustwide/target/debug/build/ring-528be24bd599cdeb/out` (signal: 9, SIGKILL: kill)
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "43732fa67dad2f8d732b5ffc4becd57b03c1c21ee45b6e4a1602bdf61eaa44f0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "43732fa67dad2f8d732b5ffc4becd57b03c1c21ee45b6e4a1602bdf61eaa44f0", kill_on_drop: false }`
[INFO] [stdout] 43732fa67dad2f8d732b5ffc4becd57b03c1c21ee45b6e4a1602bdf61eaa44f0
