[INFO] cloning repository https://github.com/nirko0/freedom-net [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nirko0/freedom-net" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnirko0%2Ffreedom-net", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnirko0%2Ffreedom-net'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] e040d0b1749f6ca79284fbff13ebd11aa520ff85 [INFO] checking nirko0/freedom-net against master#350d0ef0ec0493e6d21cfb265cb8211a0e74d766 for pr-145342-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnirko0%2Ffreedom-net" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] [stderr] Updating files: 52% (2391/4593) Updating files: 53% (2435/4593) Updating files: 54% (2481/4593) Updating files: 55% (2527/4593) Updating files: 55% (2567/4593) Updating files: 56% (2573/4593) Updating files: 57% (2619/4593) Updating files: 58% (2664/4593) Updating files: 59% (2710/4593) Updating files: 59% (2729/4593) Updating files: 60% (2756/4593) Updating files: 61% (2802/4593) Updating files: 61% (2847/4593) Updating files: 62% (2848/4593) Updating files: 63% (2894/4593) Updating files: 64% (2940/4593) Updating files: 64% (2980/4593) Updating files: 65% (2986/4593) Updating files: 66% (3032/4593) Updating files: 66% (3049/4593) Updating files: 67% (3078/4593) Updating files: 68% (3124/4593) Updating files: 69% (3170/4593) Updating files: 70% (3216/4593) Updating files: 71% (3262/4593) Updating files: 72% (3307/4593) Updating files: 73% (3353/4593) Updating files: 74% (3399/4593) Updating files: 74% (3431/4593) Updating files: 75% (3445/4593) Updating files: 76% (3491/4593) Updating files: 77% (3537/4593) Updating files: 78% (3583/4593) Updating files: 79% (3629/4593) Updating files: 80% (3675/4593) Updating files: 80% (3692/4593) Updating files: 81% (3721/4593) Updating files: 82% (3767/4593) Updating files: 83% (3813/4593) Updating files: 84% (3859/4593) Updating files: 85% (3905/4593) Updating files: 86% (3950/4593) Updating files: 87% (3996/4593) Updating files: 88% (4042/4593) Updating files: 89% (4088/4593) Updating files: 90% (4134/4593) Updating files: 91% (4180/4593) Updating files: 92% (4226/4593) Updating files: 92% (4251/4593) Updating files: 93% (4272/4593) Updating files: 94% (4318/4593) Updating files: 95% (4364/4593) Updating files: 96% (4410/4593) Updating files: 97% (4456/4593) Updating files: 98% (4502/4593) Updating files: 99% (4548/4593) Updating files: 100% (4593/4593) Updating files: 100% (4593/4593), done. [INFO] started tweaking git repo https://github.com/nirko0/freedom-net [INFO] finished tweaking git repo https://github.com/nirko0/freedom-net [INFO] tweaked toml for git repo https://github.com/nirko0/freedom-net written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/nirko0/freedom-net on toolchain 350d0ef0ec0493e6d21cfb265cb8211a0e74d766 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/nirko0/freedom-net 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" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded metrics-macros v0.7.1 [INFO] [stderr] Downloaded metrics v0.21.1 [INFO] [stderr] Downloaded metrics-util v0.15.1 [INFO] [stderr] Downloaded clap_derive v4.5.40 [INFO] [stderr] Downloaded clap v4.5.40 [INFO] [stderr] Downloaded pest_meta v2.8.1 [INFO] [stderr] Downloaded raw-cpuid v10.7.0 [INFO] [stderr] Downloaded warp v0.3.7 [INFO] [stderr] Downloaded hashbrown v0.13.1 [INFO] [stderr] Downloaded pest_derive v2.8.1 [INFO] [stderr] Downloaded pest_generator v2.8.1 [INFO] [stderr] Downloaded metrics-exporter-prometheus v0.12.2 [INFO] [stderr] Downloaded clap_builder v4.5.40 [INFO] [stderr] Downloaded quanta v0.11.1 [INFO] [stderr] Downloaded sled v0.34.7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] fb740606262e5bfe8ea4a8647c7feae627000a6d659b73b5dc2d1d0180b51ebc [INFO] running `Command { std: "docker" "start" "-a" "fb740606262e5bfe8ea4a8647c7feae627000a6d659b73b5dc2d1d0180b51ebc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "fb740606262e5bfe8ea4a8647c7feae627000a6d659b73b5dc2d1d0180b51ebc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fb740606262e5bfe8ea4a8647c7feae627000a6d659b73b5dc2d1d0180b51ebc", kill_on_drop: false }` [INFO] [stdout] fb740606262e5bfe8ea4a8647c7feae627000a6d659b73b5dc2d1d0180b51ebc [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6b14c1eade40669ada36081388ced49a6b71069e7b600cccfbcb33bce2c5dba4 [INFO] running `Command { std: "docker" "start" "-a" "6b14c1eade40669ada36081388ced49a6b71069e7b600cccfbcb33bce2c5dba4", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Compiling unicode-ident v1.0.18 [INFO] [stderr] Checking cfg-if v1.0.1 [INFO] [stderr] Compiling libc v0.2.174 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Checking memchr v2.7.5 [INFO] [stderr] Compiling typenum v1.18.0 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling zerocopy v0.8.26 [INFO] [stderr] Checking stable_deref_trait v1.2.0 [INFO] [stderr] Checking once_cell v1.21.3 [INFO] [stderr] Checking itoa v1.0.15 [INFO] [stderr] Checking bytes v1.10.1 [INFO] [stderr] Checking fnv v1.0.7 [INFO] [stderr] Checking pin-project-lite v0.2.16 [INFO] [stderr] Checking futures-core v0.3.31 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Checking futures-sink v0.3.31 [INFO] [stderr] Checking log v0.4.27 [INFO] [stderr] Checking litemap v0.8.0 [INFO] [stderr] Checking writeable v0.6.1 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Compiling icu_normalizer_data v2.0.0 [INFO] [stderr] Compiling icu_properties_data v2.0.1 [INFO] [stderr] Checking futures-channel v0.3.31 [INFO] [stderr] Checking http v0.2.12 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Checking futures-io v0.3.31 [INFO] [stderr] Compiling thiserror v2.0.12 [INFO] [stderr] Checking cpufeatures v0.2.17 [INFO] [stderr] Checking slab v0.4.10 [INFO] [stderr] Checking futures-task v0.3.31 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Compiling ahash v0.7.8 [INFO] [stderr] Checking percent-encoding v2.3.1 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Checking form_urlencoded v1.2.1 [INFO] [stderr] Compiling syn v2.0.104 [INFO] [stderr] Checking equivalent v1.0.2 [INFO] [stderr] Checking utf8_iter v1.0.4 [INFO] [stderr] Checking hashbrown v0.15.4 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling ucd-trie v0.1.7 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Checking tracing-core v0.1.34 [INFO] [stderr] Checking utf-8 v0.7.6 [INFO] [stderr] Checking data-encoding v2.9.0 [INFO] [stderr] Checking ryu v1.0.20 [INFO] [stderr] Checking utf8parse v0.2.2 [INFO] [stderr] Compiling parking_lot_core v0.8.6 [INFO] [stderr] Checking try-lock v0.2.5 [INFO] [stderr] Compiling unicase v2.8.1 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Checking mime v0.3.17 [INFO] [stderr] Checking httpdate v1.0.3 [INFO] [stderr] Checking indexmap v2.10.0 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling cc v1.2.27 [INFO] [stderr] Checking want v0.3.1 [INFO] [stderr] Checking anstyle-parse v0.2.7 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Checking raw-cpuid v10.7.0 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking http-body v0.4.6 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking digest v0.9.0 [INFO] [stderr] Compiling multer v2.1.0 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking http v1.3.1 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking mio v1.0.4 [INFO] [stderr] Checking signal-hook-registry v1.4.5 [INFO] [stderr] Checking socket2 v0.5.10 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking instant v0.1.13 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Checking tower-service v0.3.3 [INFO] [stderr] Checking base64 v0.21.7 [INFO] [stderr] Checking is_terminal_polyfill v1.70.1 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Checking anstyle-query v1.1.3 [INFO] [stderr] Checking anstyle v1.0.11 [INFO] [stderr] Checking regex-syntax v0.8.5 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Checking hashbrown v0.12.3 [INFO] [stderr] Checking colorchoice v1.0.4 [INFO] [stderr] Checking dlv-list v0.3.0 [INFO] [stderr] Checking anstream v0.6.19 [INFO] [stderr] Checking num_cpus v1.17.0 [INFO] [stderr] Checking block-buffer v0.9.0 [INFO] [stderr] Checking headers-core v0.2.0 [INFO] [stderr] Checking encoding_rs v0.8.35 [INFO] [stderr] Checking strsim v0.11.1 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Checking winnow v0.7.11 [INFO] [stderr] Checking opaque-debug v0.3.1 [INFO] [stderr] Compiling anyhow v1.0.98 [INFO] [stderr] Checking toml_write v0.1.2 [INFO] [stderr] Checking signature v1.6.4 [INFO] [stderr] Checking clap_lex v0.7.5 [INFO] [stderr] Checking sketches-ddsketch v0.2.2 [INFO] [stderr] Checking base64 v0.13.1 [INFO] [stderr] Checking subtle v2.4.1 [INFO] [stderr] Checking linked-hash-map v0.5.6 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Checking ordered-multimap v0.4.3 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking minimal-lexical v0.2.1 [INFO] [stderr] Checking yaml-rust v0.4.5 [INFO] [stderr] Checking rust-ini v0.18.0 [INFO] [stderr] Checking hashbrown v0.13.1 [INFO] [stderr] Checking clap_builder v4.5.40 [INFO] [stderr] Checking headers v0.3.9 [INFO] [stderr] Checking quanta v0.11.1 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking sha2 v0.9.9 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Checking parking_lot v0.11.2 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking fs2 v0.4.3 [INFO] [stderr] Checking is-terminal v0.4.16 [INFO] [stderr] Checking fxhash v0.2.1 [INFO] [stderr] Checking crc32fast v1.4.2 [INFO] [stderr] Checking constant_time_eq v0.3.1 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking termcolor v1.4.1 [INFO] [stderr] Checking scoped-tls v1.0.1 [INFO] [stderr] Checking arrayvec v0.7.6 [INFO] [stderr] Checking ipnet v2.11.0 [INFO] [stderr] Checking pathdiff v0.2.3 [INFO] [stderr] Checking humantime v2.2.0 [INFO] [stderr] Compiling blake3 v1.8.2 [INFO] [stderr] Checking arrayref v0.3.9 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Checking iana-time-zone v0.1.63 [INFO] [stderr] Checking sled v0.34.7 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking hex v0.4.3 [INFO] [stderr] Checking futures-timer v3.0.3 [INFO] [stderr] Checking base64ct v1.6.0 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking env_logger v0.10.2 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling metrics-macros v0.7.1 [INFO] [stderr] Compiling zeroize_derive v1.4.2 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Compiling clap_derive v4.5.40 [INFO] [stderr] Checking metrics v0.21.1 [INFO] [stderr] Checking zeroize v1.8.1 [INFO] [stderr] Checking metrics-util v0.15.1 [INFO] [stderr] Checking tokio v1.45.1 [INFO] [stderr] Checking curve25519-dalek v3.2.0 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking pin-project v1.1.10 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Compiling pest v2.8.1 [INFO] [stderr] Checking yoke v0.8.0 [INFO] [stderr] Checking clap v4.5.40 [INFO] [stderr] Checking zerovec v0.11.2 [INFO] [stderr] Checking zerotrie v0.2.2 [INFO] [stderr] Checking tinystr v0.8.1 [INFO] [stderr] Checking potential_utf v0.1.2 [INFO] [stderr] Checking icu_collections v2.0.0 [INFO] [stderr] Checking icu_locale_core v2.0.0 [INFO] [stderr] Compiling pest_meta v2.8.1 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking icu_properties v2.0.1 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Compiling pest_generator v2.8.1 [INFO] [stderr] Compiling pest_derive v2.8.1 [INFO] [stderr] Checking tokio-util v0.7.15 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking h2 v0.3.26 [INFO] [stderr] Checking toml_datetime v0.6.11 [INFO] [stderr] Checking serde_spanned v0.6.9 [INFO] [stderr] Checking ron v0.7.1 [INFO] [stderr] Checking json5 v0.4.1 [INFO] [stderr] Checking toml v0.5.11 [INFO] [stderr] Checking serde_bytes v0.11.17 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking ed25519 v1.5.3 [INFO] [stderr] Checking chrono v0.4.41 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking uuid v1.17.0 [INFO] [stderr] Checking toml_edit v0.22.27 [INFO] [stderr] Checking ed25519-dalek v1.0.1 [INFO] [stderr] Checking tungstenite v0.21.0 [INFO] [stderr] Checking tungstenite v0.20.1 [INFO] [stderr] Checking config v0.13.4 [INFO] [stderr] Checking tokio-tungstenite v0.21.0 [INFO] [stderr] Checking tokio-tungstenite v0.20.1 [INFO] [stderr] Checking toml v0.8.23 [INFO] [stderr] Checking hyper v0.14.32 [INFO] [stderr] Checking warp v0.3.7 [INFO] [stderr] Checking metrics-exporter-prometheus v0.12.2 [INFO] [stderr] Checking freedom-net v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `Duration` and `sleep` [INFO] [stdout] --> examples/network_basic.rs:4:19 [INFO] [stdout] | [INFO] [stdout] 4 | use tokio::time::{sleep, Duration}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio_tungstenite::connect_async` [INFO] [stdout] --> src/api.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use tokio_tungstenite::connect_async; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Hash` and `KeyPair` [INFO] [stdout] --> src/api.rs:12:30 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::crypto::{Address, Hash, KeyPair}; [INFO] [stdout] | ^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MultinodeEvent` [INFO] [stdout] --> src/api.rs:13:59 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::multinode::{FreedomMultinode, MultinodeStatus, MultinodeEvent}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `GovernanceProposal`, `SCTProtocol`, and `SCTToken` [INFO] [stdout] --> src/api.rs:14:30 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::smart_contracts::{SCTProtocol, SCTToken, GovernanceProposal}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `uuid::Uuid` [INFO] [stdout] --> src/blockchain.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use uuid::Uuid; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hash_multiple` [INFO] [stdout] --> src/blockchain.rs:9:32 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::crypto::{hash_data, hash_multiple, merkle_root, Address, Hash, KeyPair}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Account`, `BlockHeader`, and `ChainState` [INFO] [stdout] --> src/consensus.rs:9:32 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::blockchain::{Block, BlockHeader, ChainState, Account}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `verify_signature` [INFO] [stdout] --> src/consensus.rs:10:56 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::crypto::{Address, Hash, KeyPair, hash_data, verify_signature}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/crypto.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DateTime` and `Utc` [INFO] [stdout] --> src/multinode.rs:2:14 [INFO] [stdout] | [INFO] [stdout] 2 | use chrono::{DateTime, Utc}; [INFO] [stdout] | ^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/multinode.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Vote` [INFO] [stdout] --> src/multinode.rs:12:41 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::consensus::{ConsensusEngine, Vote}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `GovernanceProposal` [INFO] [stdout] --> src/multinode.rs:15:53 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::smart_contracts::{SCTProtocol, SCTToken, GovernanceProposal}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/network/discovery.rs:6:33 [INFO] [stdout] | [INFO] [stdout] 6 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `timeout` [INFO] [stdout] --> src/network/discovery.rs:12:29 [INFO] [stdout] | [INFO] [stdout] 12 | use tokio::time::{interval, timeout}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/network/message.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Ipv4Addr` [INFO] [stdout] --> src/network/nat.rs:7:24 [INFO] [stdout] | [INFO] [stdout] 7 | use std::net::{IpAddr, Ipv4Addr, SocketAddr}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::time::timeout` [INFO] [stdout] --> src/network/relay.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use tokio::time::timeout; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sleep` [INFO] [stdout] --> src/network/multinode.rs:10:29 [INFO] [stdout] | [INFO] [stdout] 10 | use tokio::time::{interval, sleep}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MessageType` [INFO] [stdout] --> src/network/multinode.rs:16:77 [INFO] [stdout] | [INFO] [stdout] 16 | message::{ChatMessage, ChatMessageType, ConnectionType, NetworkMessage, MessageType, PeerInfo}, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `discovery::PeerDiscovery` [INFO] [stdout] --> src/network/mod.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub use discovery::PeerDiscovery; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ChatMessage`, `MessageType`, and `PeerInfo` [INFO] [stdout] --> src/network/mod.rs:15:35 [INFO] [stdout] | [INFO] [stdout] 15 | pub use message::{NetworkMessage, PeerInfo, ChatMessage, MessageType}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `NatTraversal` and `NatType` [INFO] [stdout] --> src/network/mod.rs:16:15 [INFO] [stdout] | [INFO] [stdout] 16 | pub use nat::{NatTraversal, NatType}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RelayClient`, `RelayManager`, and `RelayServer` [INFO] [stdout] --> src/network/mod.rs:17:17 [INFO] [stdout] | [INFO] [stdout] 17 | pub use relay::{RelayManager, RelayServer, RelayClient}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `transport::Transport` [INFO] [stdout] --> src/network/mod.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | pub use transport::Transport; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/network/mod.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyPair` [INFO] [stdout] --> src/smart_contracts.rs:7:36 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::crypto::{Address, Hash, KeyPair}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio_tungstenite::connect_async` [INFO] [stdout] --> src/api.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use tokio_tungstenite::connect_async; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Hash` and `KeyPair` [INFO] [stdout] --> src/api.rs:12:30 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::crypto::{Address, Hash, KeyPair}; [INFO] [stdout] | ^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MultinodeEvent` [INFO] [stdout] --> src/api.rs:13:59 [INFO] [stdout] | [INFO] [stdout] 13 | use crate::multinode::{FreedomMultinode, MultinodeStatus, MultinodeEvent}; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `GovernanceProposal`, `SCTProtocol`, and `SCTToken` [INFO] [stdout] --> src/api.rs:14:30 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::smart_contracts::{SCTProtocol, SCTToken, GovernanceProposal}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `uuid::Uuid` [INFO] [stdout] --> src/blockchain.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use uuid::Uuid; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hash_multiple` [INFO] [stdout] --> src/blockchain.rs:9:32 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::crypto::{hash_data, hash_multiple, merkle_root, Address, Hash, KeyPair}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Account`, `BlockHeader`, and `ChainState` [INFO] [stdout] --> src/consensus.rs:9:32 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::blockchain::{Block, BlockHeader, ChainState, Account}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `verify_signature` [INFO] [stdout] --> src/consensus.rs:10:56 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::crypto::{Address, Hash, KeyPair, hash_data, verify_signature}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/crypto.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DateTime` and `Utc` [INFO] [stdout] --> src/multinode.rs:2:14 [INFO] [stdout] | [INFO] [stdout] 2 | use chrono::{DateTime, Utc}; [INFO] [stdout] | ^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/multinode.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Vote` [INFO] [stdout] --> src/multinode.rs:12:41 [INFO] [stdout] | [INFO] [stdout] 12 | use crate::consensus::{ConsensusEngine, Vote}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `GovernanceProposal` [INFO] [stdout] --> src/multinode.rs:15:53 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::smart_contracts::{SCTProtocol, SCTToken, GovernanceProposal}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `HashSet` [INFO] [stdout] --> src/network/discovery.rs:6:33 [INFO] [stdout] | [INFO] [stdout] 6 | use std::collections::{HashMap, HashSet}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `timeout` [INFO] [stdout] --> src/network/discovery.rs:12:29 [INFO] [stdout] | [INFO] [stdout] 12 | use tokio::time::{interval, timeout}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/network/message.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Ipv4Addr` [INFO] [stdout] --> src/network/nat.rs:7:24 [INFO] [stdout] | [INFO] [stdout] 7 | use std::net::{IpAddr, Ipv4Addr, SocketAddr}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::time::timeout` [INFO] [stdout] --> src/network/relay.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use tokio::time::timeout; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sleep` [INFO] [stdout] --> src/network/multinode.rs:10:29 [INFO] [stdout] | [INFO] [stdout] 10 | use tokio::time::{interval, sleep}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MessageType` [INFO] [stdout] --> src/network/multinode.rs:16:77 [INFO] [stdout] | [INFO] [stdout] 16 | message::{ChatMessage, ChatMessageType, ConnectionType, NetworkMessage, MessageType, PeerInfo}, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `discovery::PeerDiscovery` [INFO] [stdout] --> src/network/mod.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | pub use discovery::PeerDiscovery; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ChatMessage`, `MessageType`, and `PeerInfo` [INFO] [stdout] --> src/network/mod.rs:15:35 [INFO] [stdout] | [INFO] [stdout] 15 | pub use message::{NetworkMessage, PeerInfo, ChatMessage, MessageType}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `NatTraversal` and `NatType` [INFO] [stdout] --> src/network/mod.rs:16:15 [INFO] [stdout] | [INFO] [stdout] 16 | pub use nat::{NatTraversal, NatType}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RelayClient`, `RelayManager`, and `RelayServer` [INFO] [stdout] --> src/network/mod.rs:17:17 [INFO] [stdout] | [INFO] [stdout] 17 | pub use relay::{RelayManager, RelayServer, RelayClient}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `transport::Transport` [INFO] [stdout] --> src/network/mod.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | pub use transport::Transport; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `anyhow::Result` [INFO] [stdout] --> src/network/mod.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | use anyhow::Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `KeyPair` [INFO] [stdout] --> src/smart_contracts.rs:7:36 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::crypto::{Address, Hash, KeyPair}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request` [INFO] [stdout] --> src/api.rs:365:29 [INFO] [stdout] | [INFO] [stdout] 365 | async fn submit_transaction(request: TransactionRequest, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `multinode` [INFO] [stdout] --> src/api.rs:365:58 [INFO] [stdout] | [INFO] [stdout] 365 | async fn submit_transaction(request: TransactionRequest, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_multinode` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request` [INFO] [stdout] --> src/api.rs:373:30 [INFO] [stdout] | [INFO] [stdout] 373 | async fn deploy_sct_protocol(request: SCTProtocolRequest, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `multinode` [INFO] [stdout] --> src/api.rs:373:59 [INFO] [stdout] | [INFO] [stdout] 373 | async fn deploy_sct_protocol(request: SCTProtocolRequest, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_multinode` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request` [INFO] [stdout] --> src/api.rs:381:27 [INFO] [stdout] | [INFO] [stdout] 381 | async fn create_sct_token(request: SCTTokenRequest, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `multinode` [INFO] [stdout] --> src/api.rs:381:53 [INFO] [stdout] | [INFO] [stdout] 381 | async fn create_sct_token(request: SCTTokenRequest, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_multinode` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request` [INFO] [stdout] --> src/api.rs:389:37 [INFO] [stdout] | [INFO] [stdout] 389 | async fn create_governance_proposal(request: GovernanceProposalRequest, multinode: Arc>) -> Result src/api.rs:389:73 [INFO] [stdout] | [INFO] [stdout] 389 | ...overnanceProposalRequest, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_multinode` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `multinode` [INFO] [stdout] --> src/api.rs:401:5 [INFO] [stdout] | [INFO] [stdout] 401 | multinode: Arc>, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_multinode` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request` [INFO] [stdout] --> src/api.rs:365:29 [INFO] [stdout] | [INFO] [stdout] 365 | async fn submit_transaction(request: TransactionRequest, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `multinode` [INFO] [stdout] --> src/api.rs:365:58 [INFO] [stdout] | [INFO] [stdout] 365 | async fn submit_transaction(request: TransactionRequest, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_multinode` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request` [INFO] [stdout] --> src/api.rs:373:30 [INFO] [stdout] | [INFO] [stdout] 373 | async fn deploy_sct_protocol(request: SCTProtocolRequest, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `multinode` [INFO] [stdout] --> src/api.rs:373:59 [INFO] [stdout] | [INFO] [stdout] 373 | async fn deploy_sct_protocol(request: SCTProtocolRequest, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_multinode` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request` [INFO] [stdout] --> src/api.rs:381:27 [INFO] [stdout] | [INFO] [stdout] 381 | async fn create_sct_token(request: SCTTokenRequest, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `multinode` [INFO] [stdout] --> src/api.rs:381:53 [INFO] [stdout] | [INFO] [stdout] 381 | async fn create_sct_token(request: SCTTokenRequest, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_multinode` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `request` [INFO] [stdout] --> src/api.rs:389:37 [INFO] [stdout] | [INFO] [stdout] 389 | async fn create_governance_proposal(request: GovernanceProposalRequest, multinode: Arc>) -> Result src/api.rs:389:73 [INFO] [stdout] | [INFO] [stdout] 389 | ...overnanceProposalRequest, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_multinode` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `multinode` [INFO] [stdout] --> src/api.rs:401:5 [INFO] [stdout] | [INFO] [stdout] 401 | multinode: Arc>, [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_multinode` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `clients` [INFO] [stdout] --> src/api.rs:261:13 [INFO] [stdout] | [INFO] [stdout] 261 | let clients = self.websocket_clients.clone(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_clients` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/api.rs:264:13 [INFO] [stdout] | [INFO] [stdout] 264 | let event_sender = { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `clients` [INFO] [stdout] --> src/api.rs:261:13 [INFO] [stdout] | [INFO] [stdout] 261 | let clients = self.websocket_clients.clone(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_clients` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/api.rs:264:13 [INFO] [stdout] | [INFO] [stdout] 264 | let event_sender = { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `network_task` [INFO] [stdout] --> src/multinode.rs:197:13 [INFO] [stdout] | [INFO] [stdout] 197 | let network_task = { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_network_task` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sync_task` [INFO] [stdout] --> src/multinode.rs:231:13 [INFO] [stdout] | [INFO] [stdout] 231 | let sync_task = { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sync_task` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `metrics_task` [INFO] [stdout] --> src/multinode.rs:242:13 [INFO] [stdout] | [INFO] [stdout] 242 | let metrics_task = { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metrics_task` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `network_task` [INFO] [stdout] --> src/multinode.rs:197:13 [INFO] [stdout] | [INFO] [stdout] 197 | let network_task = { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_network_task` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sync_task` [INFO] [stdout] --> src/multinode.rs:231:13 [INFO] [stdout] | [INFO] [stdout] 231 | let sync_task = { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sync_task` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `metrics_task` [INFO] [stdout] --> src/multinode.rs:242:13 [INFO] [stdout] | [INFO] [stdout] 242 | let metrics_task = { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metrics_task` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sct_data` [INFO] [stdout] --> src/multinode.rs:377:25 [INFO] [stdout] | [INFO] [stdout] 377 | if let Some(sct_data) = &transaction.sct_data { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sct_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/multinode.rs:428:9 [INFO] [stdout] | [INFO] [stdout] 428 | event_sender: mpsc::UnboundedSender, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sync_message` [INFO] [stdout] --> src/multinode.rs:446:21 [INFO] [stdout] | [INFO] [stdout] 446 | let sync_message = NetworkMessage::SyncRequest { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sync_message` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `blockchain` [INFO] [stdout] --> src/multinode.rs:468:17 [INFO] [stdout] | [INFO] [stdout] 468 | let blockchain = blockchain.read().await; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_blockchain` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sct_data` [INFO] [stdout] --> src/multinode.rs:377:25 [INFO] [stdout] | [INFO] [stdout] 377 | if let Some(sct_data) = &transaction.sct_data { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sct_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event_sender` [INFO] [stdout] --> src/multinode.rs:428:9 [INFO] [stdout] | [INFO] [stdout] 428 | event_sender: mpsc::UnboundedSender, [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_event_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `sync_message` [INFO] [stdout] --> src/multinode.rs:446:21 [INFO] [stdout] | [INFO] [stdout] 446 | let sync_message = NetworkMessage::SyncRequest { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sync_message` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `creator_keypair` [INFO] [stdout] --> src/multinode.rs:588:59 [INFO] [stdout] | [INFO] [stdout] 588 | pub async fn create_sct_token(&self, token: SCTToken, creator_keypair: &KeyPair) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_creator_keypair` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `blockchain` [INFO] [stdout] --> src/multinode.rs:468:17 [INFO] [stdout] | [INFO] [stdout] 468 | let blockchain = blockchain.read().await; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_blockchain` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `creator_keypair` [INFO] [stdout] --> src/multinode.rs:588:59 [INFO] [stdout] | [INFO] [stdout] 588 | pub async fn create_sct_token(&self, token: SCTToken, creator_keypair: &KeyPair) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_creator_keypair` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `external_addr` [INFO] [stdout] --> src/network/nat.rs:170:59 [INFO] [stdout] | [INFO] [stdout] 170 | async fn classify_nat_type(&self, socket: &UdpSocket, external_addr: SocketAddr) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_external_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `external_addr` [INFO] [stdout] --> src/network/nat.rs:170:59 [INFO] [stdout] | [INFO] [stdout] 170 | async fn classify_nat_type(&self, socket: &UdpSocket, external_addr: SocketAddr) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_external_addr` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tx` [INFO] [stdout] --> src/network/relay.rs:204:18 [INFO] [stdout] | [INFO] [stdout] 204 | let (tx, rx) = mpsc::unbounded_channel(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stream` [INFO] [stdout] --> src/network/relay.rs:281:25 [INFO] [stdout] | [INFO] [stdout] 281 | if let Some(stream) = &client.relay_stream { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/network/relay.rs:282:21 [INFO] [stdout] | [INFO] [stdout] 282 | let data = bincode::serialize(message)?; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tx` [INFO] [stdout] --> src/network/relay.rs:204:18 [INFO] [stdout] | [INFO] [stdout] 204 | let (tx, rx) = mpsc::unbounded_channel(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stream` [INFO] [stdout] --> src/network/relay.rs:281:25 [INFO] [stdout] | [INFO] [stdout] 281 | if let Some(stream) = &client.relay_stream { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/network/relay.rs:282:21 [INFO] [stdout] | [INFO] [stdout] 282 | let data = bincode::serialize(message)?; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/network/transport.rs:251:13 [INFO] [stdout] | [INFO] [stdout] 244 | continue; // Simplified for this example [INFO] [stdout] | -------- any code following this expression is unreachable [INFO] [stdout] ... [INFO] [stdout] 251 | / match Self::read_message_frame(&mut stream).await { [INFO] [stdout] 252 | | Ok(frame) => { [INFO] [stdout] 253 | | // Deserialize message [INFO] [stdout] 254 | | match NetworkMessage::from_bytes(&frame.payload) { [INFO] [stdout] ... | [INFO] [stdout] 282 | | } [INFO] [stdout] | |_____________^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `message_sender` [INFO] [stdout] --> src/network/transport.rs:236:9 [INFO] [stdout] | [INFO] [stdout] 236 | message_sender: mpsc::UnboundedSender, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stream` [INFO] [stdout] --> src/network/transport.rs:239:21 [INFO] [stdout] | [INFO] [stdout] 239 | let mut stream = { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/network/transport.rs:251:13 [INFO] [stdout] | [INFO] [stdout] 244 | continue; // Simplified for this example [INFO] [stdout] | -------- any code following this expression is unreachable [INFO] [stdout] ... [INFO] [stdout] 251 | / match Self::read_message_frame(&mut stream).await { [INFO] [stdout] 252 | | Ok(frame) => { [INFO] [stdout] 253 | | // Deserialize message [INFO] [stdout] 254 | | match NetworkMessage::from_bytes(&frame.payload) { [INFO] [stdout] ... | [INFO] [stdout] 282 | | } [INFO] [stdout] | |_____________^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `message_sender` [INFO] [stdout] --> src/network/transport.rs:236:9 [INFO] [stdout] | [INFO] [stdout] 236 | message_sender: mpsc::UnboundedSender, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message_sender` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stream` [INFO] [stdout] --> src/network/transport.rs:239:21 [INFO] [stdout] | [INFO] [stdout] 239 | let mut stream = { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/network/multinode.rs:193:32 [INFO] [stdout] | [INFO] [stdout] 193 | if let Err(e) = self.run_maintenance().await { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/network/multinode.rs:200:32 [INFO] [stdout] | [INFO] [stdout] 200 | if let Err(e) = self.probe_nat().await { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/network/multinode.rs:193:32 [INFO] [stdout] | [INFO] [stdout] 193 | if let Err(e) = self.run_maintenance().await { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/network/multinode.rs:200:32 [INFO] [stdout] | [INFO] [stdout] 200 | if let Err(e) = self.probe_nat().await { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `peer_info` [INFO] [stdout] --> src/network/multinode.rs:542:17 [INFO] [stdout] | [INFO] [stdout] 542 | let peer_info = PeerInfo { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_peer_info` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `peer_info` [INFO] [stdout] --> src/network/multinode.rs:542:17 [INFO] [stdout] | [INFO] [stdout] 542 | let peer_info = PeerInfo { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_peer_info` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `creator` [INFO] [stdout] --> src/smart_contracts.rs:364:49 [INFO] [stdout] | [INFO] [stdout] 364 | pub async fn create_sct_protocol(&mut self, creator: Address, protocol: SCTProtocol) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_creator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `creator` [INFO] [stdout] --> src/smart_contracts.rs:364:49 [INFO] [stdout] | [INFO] [stdout] 364 | pub async fn create_sct_protocol(&mut self, creator: Address, protocol: SCTProtocol) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_creator` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `contract` [INFO] [stdout] --> src/smart_contracts.rs:468:45 [INFO] [stdout] | [INFO] [stdout] 468 | pub async fn deploy_contract(&mut self, contract: &SmartContract, init_data: &[u8]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contract` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `init_data` [INFO] [stdout] --> src/smart_contracts.rs:468:71 [INFO] [stdout] | [INFO] [stdout] 468 | pub async fn deploy_contract(&mut self, contract: &SmartContract, init_data: &[u8]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_init_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `contract` [INFO] [stdout] --> src/smart_contracts.rs:474:43 [INFO] [stdout] | [INFO] [stdout] 474 | pub async fn call_contract(&mut self, contract: &SmartContract, method: &str, args: &[u8]) -> Result> { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contract` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `method` [INFO] [stdout] --> src/smart_contracts.rs:474:69 [INFO] [stdout] | [INFO] [stdout] 474 | pub async fn call_contract(&mut self, contract: &SmartContract, method: &str, args: &[u8]) -> Result> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_method` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/smart_contracts.rs:474:83 [INFO] [stdout] | [INFO] [stdout] 474 | pub async fn call_contract(&mut self, contract: &SmartContract, method: &str, args: &[u8]) -> Result> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_args` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `contract` [INFO] [stdout] --> src/smart_contracts.rs:468:45 [INFO] [stdout] | [INFO] [stdout] 468 | pub async fn deploy_contract(&mut self, contract: &SmartContract, init_data: &[u8]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contract` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `init_data` [INFO] [stdout] --> src/smart_contracts.rs:468:71 [INFO] [stdout] | [INFO] [stdout] 468 | pub async fn deploy_contract(&mut self, contract: &SmartContract, init_data: &[u8]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_init_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `contract` [INFO] [stdout] --> src/smart_contracts.rs:474:43 [INFO] [stdout] | [INFO] [stdout] 474 | pub async fn call_contract(&mut self, contract: &SmartContract, method: &str, args: &[u8]) -> Result> { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contract` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `method` [INFO] [stdout] --> src/smart_contracts.rs:474:69 [INFO] [stdout] | [INFO] [stdout] 474 | pub async fn call_contract(&mut self, contract: &SmartContract, method: &str, args: &[u8]) -> Result> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_method` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/smart_contracts.rs:474:83 [INFO] [stdout] | [INFO] [stdout] 474 | pub async fn call_contract(&mut self, contract: &SmartContract, method: &str, args: &[u8]) -> Result> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_args` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `string_to_address` is never used [INFO] [stdout] --> src/api.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn string_to_address(s: &str) -> Result
{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ApiResponse` is never constructed [INFO] [stdout] --> src/api.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct ApiResponse { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `success` and `error` are never used [INFO] [stdout] --> src/api.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 36 | impl ApiResponse { [INFO] [stdout] | ---------------------- associated functions in this implementation [INFO] [stdout] 37 | pub fn success(data: T) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn error(message: String) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TransactionRequest` is never constructed [INFO] [stdout] --> src/api.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct TransactionRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SCTProtocolRequest` is never constructed [INFO] [stdout] --> src/api.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 67 | pub struct SCTProtocolRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SCTTokenRequest` is never constructed [INFO] [stdout] --> src/api.rs:76:12 [INFO] [stdout] | [INFO] [stdout] 76 | pub struct SCTTokenRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GovernanceProposalRequest` is never constructed [INFO] [stdout] --> src/api.rs:86:12 [INFO] [stdout] | [INFO] [stdout] 86 | pub struct GovernanceProposalRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BalanceResponse` is never constructed [INFO] [stdout] --> src/api.rs:96:12 [INFO] [stdout] | [INFO] [stdout] 96 | pub struct BalanceResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BlockResponse` is never constructed [INFO] [stdout] --> src/api.rs:104:12 [INFO] [stdout] | [INFO] [stdout] 104 | pub struct BlockResponse { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `WebSocketMessage` is never used [INFO] [stdout] --> src/api.rs:117:10 [INFO] [stdout] | [INFO] [stdout] 117 | pub enum WebSocketMessage { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FreedomAPI` is never constructed [INFO] [stdout] --> src/api.rs:146:12 [INFO] [stdout] | [INFO] [stdout] 146 | pub struct FreedomAPI { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `start_server`, `start_event_broadcaster`, and `broadcast_to_all_clients` are never used [INFO] [stdout] --> src/api.rs:152:12 [INFO] [stdout] | [INFO] [stdout] 151 | impl FreedomAPI { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 152 | pub fn new(multinode: Arc>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 159 | pub async fn start_server(&self, port: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 259 | async fn start_event_broadcaster(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 289 | async fn broadcast_to_all_clients( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `with_multinode` is never used [INFO] [stdout] --> src/api.rs:301:4 [INFO] [stdout] | [INFO] [stdout] 301 | fn with_multinode( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `WebSocketClients` is never used [INFO] [stdout] --> src/api.rs:307:6 [INFO] [stdout] | [INFO] [stdout] 307 | type WebSocketClients = Arc>>>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `with_websocket_clients` is never used [INFO] [stdout] --> src/api.rs:309:4 [INFO] [stdout] | [INFO] [stdout] 309 | fn with_websocket_clients( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_node_status` is never used [INFO] [stdout] --> src/api.rs:316:10 [INFO] [stdout] | [INFO] [stdout] 316 | async fn get_node_status(multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_balance` is never used [INFO] [stdout] --> src/api.rs:322:10 [INFO] [stdout] | [INFO] [stdout] 322 | async fn get_balance(address: String, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_block` is never used [INFO] [stdout] --> src/api.rs:344:10 [INFO] [stdout] | [INFO] [stdout] 344 | async fn get_block(height: u64, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `submit_transaction` is never used [INFO] [stdout] --> src/api.rs:365:10 [INFO] [stdout] | [INFO] [stdout] 365 | async fn submit_transaction(request: TransactionRequest, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `deploy_sct_protocol` is never used [INFO] [stdout] --> src/api.rs:373:10 [INFO] [stdout] | [INFO] [stdout] 373 | async fn deploy_sct_protocol(request: SCTProtocolRequest, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_sct_token` is never used [INFO] [stdout] --> src/api.rs:381:10 [INFO] [stdout] | [INFO] [stdout] 381 | async fn create_sct_token(request: SCTTokenRequest, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_governance_proposal` is never used [INFO] [stdout] --> src/api.rs:389:10 [INFO] [stdout] | [INFO] [stdout] 389 | async fn create_governance_proposal(request: GovernanceProposalRequest, multinode: Arc>) -> Result src/api.rs:398:10 [INFO] [stdout] | [INFO] [stdout] 398 | async fn handle_websocket( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `handle_rejection` is never used [INFO] [stdout] --> src/api.rs:468:10 [INFO] [stdout] | [INFO] [stdout] 468 | async fn handle_rejection(err: Rejection) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/blockchain.rs:457:14 [INFO] [stdout] | [INFO] [stdout] 90 | impl Blockchain { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 457 | async fn call_contract(&mut self, contract_address: Address, method: String, args: Vec) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 465 | pub fn get_account(&self, address: &Address) -> Option<&Account> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 469 | pub fn get_chain_state(&self) -> &ChainState { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 473 | pub fn get_pending_transactions(&self) -> &[Transaction] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 477 | pub async fn get_block(&self, height: u64) -> Result> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 481 | pub fn get_balance(&self, address: &Address) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 489 | pub fn get_pending_transaction_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 493 | pub async fn get_block_by_height(&self, height: u64) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 497 | pub fn get_account_balance(&self, address: &Address) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `save` is never used [INFO] [stdout] --> src/config.rs:147:12 [INFO] [stdout] | [INFO] [stdout] 106 | impl NodeConfig { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 147 | pub fn save(&self, path: &Path) -> Result<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Attestation` is never constructed [INFO] [stdout] --> src/consensus.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 56 | pub struct Attestation { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/consensus.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct ConsensusEngine { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] 64 | config: ConsensusConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/consensus.rs:103:12 [INFO] [stdout] | [INFO] [stdout] 71 | impl ConsensusEngine { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn is_validator(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn add_validator(&mut self, address: Address, staked_amount: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn remove_validator(&mut self, address: &Address) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub fn update_validator_stake(&mut self, address: &Address, new_stake: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 174 | fn calculate_voting_power(&self, staked_amount: u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | fn update_block_production_schedule(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 212 | pub fn get_next_validator(&mut self) -> Option
{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | pub fn validate_block_producer(&self, block: &Block) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 318 | pub fn finalize_block(&mut self, block_hash: Hash, block_height: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 328 | pub fn slash_validator(&mut self, validator_address: &Address, reason: SlashReason) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 351 | pub fn process_epoch_end(&mut self, current_height: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 362 | fn start_new_epoch(&mut self, height: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 385 | pub fn calculate_block_reward(&self, block_height: u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 410 | pub fn get_validator_stats(&self) -> ValidatorStats { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 426 | pub fn get_current_epoch(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 430 | pub fn get_validator_set(&self) -> &ValidatorSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 434 | pub fn get_finalized_height(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 438 | pub fn is_block_finalized(&self, height: u64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SlashReason` is never used [INFO] [stdout] --> src/consensus.rs:444:10 [INFO] [stdout] | [INFO] [stdout] 444 | pub enum SlashReason { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ValidatorStats` is never constructed [INFO] [stdout] --> src/consensus.rs:452:12 [INFO] [stdout] | [INFO] [stdout] 452 | pub struct ValidatorStats { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ConsensusMetrics` is never constructed [INFO] [stdout] --> src/consensus.rs:461:12 [INFO] [stdout] | [INFO] [stdout] 461 | pub struct ConsensusMetrics { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `public_key` is never used [INFO] [stdout] --> src/crypto.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl KeyPair { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn public_key(&self) -> PublicKey { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `freedom_format_to_address` is never used [INFO] [stdout] --> src/crypto.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn freedom_format_to_address(address_str: &str) -> Result
{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `address_zero` is never used [INFO] [stdout] --> src/crypto.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn address_zero() -> Address { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `address_from_string` is never used [INFO] [stdout] --> src/crypto.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn address_from_string(address_str: &str) -> Result
{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `verify_signature` is never used [INFO] [stdout] --> src/crypto.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | pub fn verify_signature(public_key: &PublicKey, message: &[u8], signature: &Signature) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `from_hex` is never used [INFO] [stdout] --> src/crypto.rs:135:8 [INFO] [stdout] | [INFO] [stdout] 135 | pub fn from_hex(hex_str: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MultinodeStatus` is never constructed [INFO] [stdout] --> src/multinode.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 52 | pub struct MultinodeStatus { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `config`, `node_id`, and `start_time` are never read [INFO] [stdout] --> src/multinode.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 66 | pub struct FreedomMultinode { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 67 | // Core components [INFO] [stdout] 68 | config: NodeConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | node_id: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 78 | is_validator: bool, [INFO] [stdout] 79 | start_time: Instant, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `contracts_executed`, `network_messages_sent`, `network_messages_received`, `average_block_time`, and `sync_duration` are never read [INFO] [stdout] --> src/multinode.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 93 | pub struct MultinodeMetrics { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 96 | pub contracts_executed: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 97 | pub network_messages_sent: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 98 | pub network_messages_received: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 99 | pub average_block_time: Duration, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 100 | pub sync_duration: Duration, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MultinodeMetrics` 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 methods are never used [INFO] [stdout] --> src/multinode.rs:514:18 [INFO] [stdout] | [INFO] [stdout] 119 | impl FreedomMultinode { [INFO] [stdout] | --------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 514 | pub async fn get_status(&self) -> MultinodeStatus { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 539 | pub async fn submit_transaction(&self, transaction: Transaction) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 558 | pub async fn get_block(&self, height: u64) -> Result> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 563 | pub async fn get_balance(&self, address: &Address) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 568 | pub async fn deploy_sct_protocol(&self, protocol: SCTProtocol, creator_keypair: &KeyPair) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 588 | pub async fn create_sct_token(&self, token: SCTToken, creator_keypair: &KeyPair) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 608 | pub fn get_event_sender(&self) -> mpsc::UnboundedSender { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 612 | pub async fn shutdown(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start_multinode` is never used [INFO] [stdout] --> src/multinode.rs:621:14 [INFO] [stdout] | [INFO] [stdout] 621 | pub async fn start_multinode(config_path: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NetworkStats` is never constructed [INFO] [stdout] --> src/multinode.rs:633:12 [INFO] [stdout] | [INFO] [stdout] 633 | pub struct NetworkStats { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/multinode.rs:642:12 [INFO] [stdout] | [INFO] [stdout] 641 | impl NetworkStats { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 642 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `deploy_protocol` and `create_token` are never used [INFO] [stdout] --> src/multinode.rs:680:18 [INFO] [stdout] | [INFO] [stdout] 660 | impl SmartContractVM { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 680 | pub async fn deploy_protocol(&mut self, _protocol_data: &crate::smart_contracts::SCTData) -> anyhow::Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 686 | pub async fn create_token(&mut self, _token_data: &crate::smart_contracts::SCTData) -> anyhow::Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `initialize` is never used [INFO] [stdout] --> src/network/mod.rs:25:14 [INFO] [stdout] | [INFO] [stdout] 25 | pub async fn initialize() -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `local_node_id`, `bootstrap_peers`, `discovery_socket`, `message_sender`, `discovery_cache`, and `local_interfaces` are never read [INFO] [stdout] --> src/network/discovery.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct PeerDiscovery { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 19 | /// Local node ID [INFO] [stdout] 20 | local_node_id: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | bootstrap_peers: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 25 | /// Discovery UDP socket [INFO] [stdout] 26 | discovery_socket: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 27 | /// Discovery message channel [INFO] [stdout] 28 | message_sender: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 29 | /// Peer discovery cache [INFO] [stdout] 30 | discovery_cache: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 31 | /// Local network interfaces [INFO] [stdout] 32 | local_interfaces: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PeerDiscovery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `peer_info`, `discovered_at`, `last_response`, `response_count`, and `is_bootstrap` are never read [INFO] [stdout] --> src/network/discovery.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 37 | struct DiscoveryEntry { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 38 | peer_info: PeerInfo, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 39 | discovered_at: Instant, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 40 | last_response: Instant, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 41 | response_count: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 42 | is_bootstrap: bool, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DiscoveryEntry` 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: enum `DiscoveryMessage` is never used [INFO] [stdout] --> src/network/discovery.rs:47:10 [INFO] [stdout] | [INFO] [stdout] 47 | pub enum DiscoveryMessage { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/network/discovery.rs:117:18 [INFO] [stdout] | [INFO] [stdout] 95 | impl PeerDiscovery { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 117 | pub async fn initialize( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | async fn discover_local_interfaces(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | async fn start_discovery_tasks(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 187 | async fn local_network_scan_task(socket: Arc, local_id: String) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | async fn scan_network_range(socket: &UdpSocket, local_id: &str, range: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 232 | async fn bootstrap_discovery_task( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 255 | async fn peer_maintenance_task(socket: Arc, local_id: String) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 285 | pub async fn handle_discovery_message(&mut self, data: &[u8], from: SocketAddr) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 322 | async fn handle_peer_announcement( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 368 | async fn handle_peer_request(&mut self, requesting_node: String, from: SocketAddr, max_peers: u32) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 393 | async fn handle_peer_response(&mut self, _responding_node: String, peers: Vec) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 421 | async fn handle_ping(&mut self, node_id: String, from: SocketAddr, timestamp: u64, sequence: u32) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 442 | async fn handle_pong(&mut self, node_id: String, _from: SocketAddr, _timestamp: u64, _sequence: u32) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 453 | async fn handle_local_scan(&mut self, node_id: String, from: SocketAddr, port: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 475 | async fn handle_bootstrap_request(&mut self, node_id: String, from: SocketAddr, need_peers: bool) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 504 | pub fn peer_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 509 | pub async fn announce_self(&self, listen_port: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 538 | pub fn cleanup_old_peers(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MessageType` is never used [INFO] [stdout] --> src/network/message.rs:54:10 [INFO] [stdout] | [INFO] [stdout] 54 | pub enum MessageType { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `message_type`, `requires_auth`, and `target_peer` are never used [INFO] [stdout] --> src/network/message.rs:108:12 [INFO] [stdout] | [INFO] [stdout] 106 | impl NetworkMessage { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] 107 | /// Get the message type for routing purposes [INFO] [stdout] 108 | pub fn message_type(&self) -> MessageType { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | pub fn requires_auth(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn target_peer(&self) -> Option<&str> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `touch`, `is_direct_reachable`, and `best_address` are never used [INFO] [stdout] --> src/network/message.rs:178:12 [INFO] [stdout] | [INFO] [stdout] 176 | impl PeerInfo { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 177 | /// Create new peer info [INFO] [stdout] 178 | pub fn new(peer_id: String, address: String, port: u16) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 194 | pub fn touch(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn is_direct_reachable(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 204 | pub fn best_address(&self) -> (String, u16) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new_text` and `new_system` are never used [INFO] [stdout] --> src/network/message.rs:215:12 [INFO] [stdout] | [INFO] [stdout] 213 | impl ChatMessage { [INFO] [stdout] | ---------------- associated functions in this implementation [INFO] [stdout] 214 | /// Create a new text chat message [INFO] [stdout] 215 | pub fn new_text(from: String, to: Option, content: String) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn new_system(content: String) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `target_peer`, `target_addr`, and `started_at` are never read [INFO] [stdout] --> src/network/nat.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 48 | pub struct HolePunchAttempt { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 49 | pub target_peer: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 50 | pub target_addr: SocketAddr, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 51 | pub started_at: Instant, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `HolePunchAttempt` 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 methods are never used [INFO] [stdout] --> src/network/nat.rs:96:18 [INFO] [stdout] | [INFO] [stdout] 74 | impl NatTraversal { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 96 | pub async fn initialize(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 249 | pub async fn handle_hole_punch_packet(&self, data: &[u8], from: SocketAddr) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn external_mapping(&self) -> Option<(IpAddr, u16)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 273 | pub fn can_direct_connect(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 283 | pub fn find_relay_for_peer(&self, _target_peer: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 290 | pub fn get_punch_stats(&self) -> Vec<&HolePunchAttempt> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 295 | pub fn cleanup_old_attempts(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `traversal_difficulty` and `supports_hole_punching` are never used [INFO] [stdout] --> src/network/nat.rs:308:12 [INFO] [stdout] | [INFO] [stdout] 306 | impl NatType { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 307 | /// Get difficulty level for NAT traversal [INFO] [stdout] 308 | pub fn traversal_difficulty(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 320 | pub fn supports_hole_punching(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `relay_servers`, `active_relays`, `relay_client`, and `message_sender` are never read [INFO] [stdout] --> src/network/relay.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct RelayManager { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 19 | /// Available relay servers [INFO] [stdout] 20 | relay_servers: Arc>>, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 21 | /// Active relay connections [INFO] [stdout] 22 | active_relays: Arc>>, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 23 | /// Relay client for connecting through relays [INFO] [stdout] 24 | relay_client: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 25 | /// Message sender for relayed messages [INFO] [stdout] 26 | message_sender: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RelayManager` 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 fields are never read [INFO] [stdout] --> src/network/relay.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 31 | pub struct RelayServer { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 32 | pub id: String, [INFO] [stdout] 33 | pub address: SocketAddr, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 34 | pub capacity: u32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 35 | pub current_connections: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 36 | pub location: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 37 | pub last_seen: Instant, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 38 | pub latency: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 39 | pub reliability: f32, // 0.0 to 1.0 [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RelayServer` 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: method `start` is never used [INFO] [stdout] --> src/network/relay.rs:58:18 [INFO] [stdout] | [INFO] [stdout] 42 | impl RelayServer { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 58 | pub async fn start(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `relay_id`, `target_peer`, `established_at`, `bytes_sent`, `bytes_received`, and `last_activity` are never read [INFO] [stdout] --> src/network/relay.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 74 | pub struct RelayConnection { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 75 | pub relay_id: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 76 | pub target_peer: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 77 | pub established_at: Instant, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 78 | pub bytes_sent: u64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 79 | pub bytes_received: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 80 | pub last_activity: Instant, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RelayConnection` 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 `local_peer_id`, `relay_stream`, and `message_receiver` are never read [INFO] [stdout] --> src/network/relay.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 85 | pub struct RelayClient { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 86 | local_peer_id: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 87 | connected_relay: Option, [INFO] [stdout] 88 | relay_stream: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 89 | message_receiver: mpsc::UnboundedReceiver, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RelayClient` 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 `RelayServerImpl` is never constructed [INFO] [stdout] --> src/network/relay.rs:115:12 [INFO] [stdout] | [INFO] [stdout] 115 | pub struct RelayServerImpl { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RelayPeerConnection` is never constructed [INFO] [stdout] --> src/network/relay.rs:124:8 [INFO] [stdout] | [INFO] [stdout] 124 | struct RelayPeerConnection { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RelayMessage` is never used [INFO] [stdout] --> src/network/relay.rs:133:10 [INFO] [stdout] | [INFO] [stdout] 133 | pub enum RelayMessage { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/network/relay.rs:170:12 [INFO] [stdout] | [INFO] [stdout] 158 | impl RelayManager { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 170 | pub fn initialize(&mut self, message_sender: mpsc::UnboundedSender) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | pub async fn add_relay_server(&self, server: RelayServer) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | pub async fn find_best_relay(&self, _target_peer: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | pub async fn connect_through_relay( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 253 | pub async fn send_through_relay( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 279 | async fn send_relay_message(&self, message: &RelayMessage) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 291 | pub async fn handle_relay_message(&mut self, data: &[u8]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 341 | pub async fn get_relay_stats(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 347 | pub async fn cleanup_inactive_connections(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 354 | pub async fn get_available_relays(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `start`, and `handle_connection` are never used [INFO] [stdout] --> src/network/relay.rs:365:12 [INFO] [stdout] | [INFO] [stdout] 363 | impl RelayServerImpl { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] 364 | /// Create new relay server [INFO] [stdout] 365 | pub fn new(id: String, listen_addr: SocketAddr, max_connections: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 375 | pub async fn start(&self) -> Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 400 | async fn handle_connection( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `listen_addr` and `listener` are never read [INFO] [stdout] --> src/network/transport.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct Transport { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 19 | /// Local listening address [INFO] [stdout] 20 | listen_addr: SocketAddr, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 21 | /// TCP listener [INFO] [stdout] 22 | listener: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Transport` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `peer_id`, `established_at`, and `connection_type` are never read [INFO] [stdout] --> src/network/transport.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 33 | pub struct Connection { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 34 | pub peer_id: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 35 | pub stream: TcpStream, [INFO] [stdout] 36 | pub established_at: Instant, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub connection_type: ConnectionType, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Connection` 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 `bytes_sent`, `bytes_received`, and `connection_errors` are never read [INFO] [stdout] --> src/network/transport.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct TransportStats { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 48 | pub bytes_sent: u64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 49 | pub bytes_received: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 50 | pub connection_errors: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TransportStats` 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 `Inbound` is never constructed [INFO] [stdout] --> src/network/transport.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 56 | pub enum ConnectionType { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] 57 | Inbound, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConnectionType` 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 `KEEPALIVE_INTERVAL` is never used [INFO] [stdout] --> src/network/transport.rs:78:11 [INFO] [stdout] | [INFO] [stdout] 78 | pub const KEEPALIVE_INTERVAL: Duration = Duration::from_secs(60); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `initialize`, `start_accept_loop`, `handle_inbound_connection`, `get_connected_peers`, and `get_stats` are never used [INFO] [stdout] --> src/network/transport.rs:93:18 [INFO] [stdout] | [INFO] [stdout] 80 | impl Transport { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 93 | pub async fn initialize(&mut self, message_sender: mpsc::UnboundedSender) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | async fn start_accept_loop(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | async fn handle_inbound_connection( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 409 | pub async fn get_connected_peers(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 421 | pub async fn get_stats(&self) -> TransportStats { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/network/config.rs:284:12 [INFO] [stdout] | [INFO] [stdout] 282 | impl NetworkConfig { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 283 | /// Load configuration from file [INFO] [stdout] 284 | pub fn load_from_file>(path: P) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 291 | pub fn save_to_file>(&self, path: P) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 298 | pub fn create_default_config>(path: P) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 340 | pub fn external_socket_addr(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 349 | pub fn connection_timeout(&self) -> Duration { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 354 | pub fn keepalive_interval(&self) -> Duration { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 359 | pub fn nat_detection_timeout(&self) -> Duration { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 364 | pub fn hole_punch_timeout(&self) -> Duration { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 379 | pub fn local_scan_interval(&self) -> Duration { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 396 | pub fn is_chat_enabled(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 400 | pub fn is_local_scan_enabled(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 405 | pub fn stun_server_addrs(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 412 | pub fn bootstrap_peer_addrs(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 426 | pub fn set_node_id(&mut self, node_id: String) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `relay_manager` is never read [INFO] [stdout] --> src/network/multinode.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct MultiNode { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 36 | relay_manager: RelayManager, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MultiNode` 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 methods are never used [INFO] [stdout] --> src/network/multinode.rs:135:18 [INFO] [stdout] | [INFO] [stdout] 71 | impl MultiNode { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 135 | pub async fn start(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | async fn start_nat_detection(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 288 | async fn start_peer_discovery(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 458 | async fn remove_connected_peer(&mut self, peer_id: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 501 | pub async fn send_chat_message(&self, content: String, recipient: Option) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 578 | pub async fn get_stats(&self) -> NodeStats { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 590 | pub fn get_chat_history(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 627 | pub fn get_message_sender(&self) -> mpsc::UnboundedSender { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `handle_message`, `handle_peer_disconnected`, and `name` are never used [INFO] [stdout] --> src/network/behaviour.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub trait NetworkBehaviour: Send + Sync { [INFO] [stdout] | ---------------- methods in this trait [INFO] [stdout] 14 | /// Handle incoming network message [INFO] [stdout] 15 | fn handle_message(&mut self, message: NetworkMessage, peer_id: &str) -> Result>; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | fn handle_peer_disconnected(&mut self, peer_id: &str) -> Result<()>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | fn name(&self) -> &str; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `node_id`, `message_history`, `max_history`, and `message_sender` are never read [INFO] [stdout] --> src/network/behaviour.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct ChatBehaviour { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 30 | /// Node ID [INFO] [stdout] 31 | node_id: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 32 | /// Chat history [INFO] [stdout] 33 | message_history: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 34 | /// Maximum history size [INFO] [stdout] 35 | max_history: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | message_sender: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ChatBehaviour` 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 `node_id`, `block_cache`, and `transaction_pool` are never read [INFO] [stdout] --> src/network/behaviour.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 54 | pub struct BlockchainBehaviour { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 55 | /// Node ID [INFO] [stdout] 56 | node_id: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 57 | /// Block cache [INFO] [stdout] 58 | block_cache: HashMap, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 59 | /// Transaction pool [INFO] [stdout] 60 | transaction_pool: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BlockchainBehaviour` 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 `node_id` and `discovery_interval` are never read [INFO] [stdout] --> src/network/behaviour.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 88 | pub struct DiscoveryBehaviour { [INFO] [stdout] | ------------------ fields in this struct [INFO] [stdout] 89 | /// Node ID [INFO] [stdout] 90 | node_id: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | discovery_interval: Duration, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DiscoveryBehaviour` 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 `add_to_history`, `get_history`, `get_connected_peers`, and `set_message_sender` are never used [INFO] [stdout] --> src/network/behaviour.rs:125:12 [INFO] [stdout] | [INFO] [stdout] 112 | impl ChatBehaviour { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 125 | pub fn add_to_history(&mut self, entry: ChatHistoryEntry) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn get_history(&self) -> &[ChatHistoryEntry] { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn get_connected_peers(&self) -> Vec<&PeerInfo> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn set_message_sender(&mut self, sender: mpsc::UnboundedSender) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `add_transaction`, `get_transaction_pool`, `add_block`, and `get_block` are never used [INFO] [stdout] --> src/network/behaviour.rs:209:12 [INFO] [stdout] | [INFO] [stdout] 197 | impl BlockchainBehaviour { [INFO] [stdout] | ------------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 209 | pub fn add_transaction(&mut self, tx: TransactionData) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn get_transaction_pool(&self) -> &[TransactionData] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 219 | pub fn add_block(&mut self, block: BlockData) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 224 | pub fn get_block(&self, hash: &str) -> Option<&BlockData> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_known_peers` and `cleanup_stale_peers` are never used [INFO] [stdout] --> src/network/behaviour.rs:276:12 [INFO] [stdout] | [INFO] [stdout] 258 | impl DiscoveryBehaviour { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 276 | pub fn get_known_peers(&self) -> Vec<&PeerInfo> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 281 | pub fn cleanup_stale_peers(&mut self, max_age: Duration) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `handle_message`, `handle_peer_disconnected`, `send_message`, `get_chat_history`, `get_connected_peers`, and `cleanup_stale_peers` are never used [INFO] [stdout] --> src/network/behaviour.rs:372:12 [INFO] [stdout] | [INFO] [stdout] 355 | impl FreedomNetBehaviour { [INFO] [stdout] | ------------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 372 | pub fn handle_message(&mut self, message: NetworkMessage, peer_id: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 401 | pub fn handle_peer_disconnected(&mut self, peer_id: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 409 | pub fn send_message(&self, message: NetworkMessage) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 419 | pub fn get_chat_history(&self) -> &[ChatHistoryEntry] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 424 | pub fn get_connected_peers(&self) -> Vec<&PeerInfo> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 429 | pub fn cleanup_stale_peers(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `tokens` and `governance_proposals` are never read [INFO] [stdout] --> src/smart_contracts.rs:255:5 [INFO] [stdout] | [INFO] [stdout] 253 | pub struct VirtualMachine { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 254 | protocols: HashMap, [INFO] [stdout] 255 | tokens: HashMap, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 256 | core_contracts: HashMap, [INFO] [stdout] 257 | governance_proposals: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/smart_contracts.rs:364:18 [INFO] [stdout] | [INFO] [stdout] 260 | impl VirtualMachine { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 364 | pub async fn create_sct_protocol(&mut self, creator: Address, protocol: SCTProtocol) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 380 | pub async fn create_sct_token( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 440 | fn validate_field_values( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 474 | pub async fn call_contract(&mut self, contract: &SmartContract, method: &str, args: &[u8]) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 480 | pub async fn create_governance_proposal( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 518 | pub fn get_sct_protocols(&self) -> &HashMap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 523 | pub fn get_sct_token(&self, token_id: &Uuid) -> Option<&SCTToken> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 528 | pub fn get_core_balance(&self, token_type: &CoreTokenType, address: &Address) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TREE_SCT_PROTOCOLS` is never used [INFO] [stdout] --> src/storage.rs:16:7 [INFO] [stdout] | [INFO] [stdout] 16 | const TREE_SCT_PROTOCOLS: &str = "sct_protocols"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TREE_SCT_TOKENS` is never used [INFO] [stdout] --> src/storage.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const TREE_SCT_TOKENS: &str = "sct_tokens"; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TREE_GOVERNANCE` is never used [INFO] [stdout] --> src/storage.rs:18:7 [INFO] [stdout] | [INFO] [stdout] 18 | const TREE_GOVERNANCE: &str = "governance"; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TREE_TRANSACTIONS` is never used [INFO] [stdout] --> src/storage.rs:19:7 [INFO] [stdout] | [INFO] [stdout] 19 | const TREE_TRANSACTIONS: &str = "transactions"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/storage.rs:55:18 [INFO] [stdout] | [INFO] [stdout] 25 | impl Storage { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 55 | pub async fn get_block(&self, height: u64) -> Result> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub async fn get_latest_blocks(&self, count: usize) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub async fn get_account(&self, address: &Address) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | pub async fn store_contract(&self, contract: &SmartContract) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | pub async fn get_contract(&self, address: &Address) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | pub async fn store_sct_protocol(&self, protocol: &SCTProtocol) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | pub async fn get_sct_protocol(&self, protocol_id: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 225 | pub async fn get_all_sct_protocols(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 240 | pub async fn store_sct_token(&self, token: &SCTToken) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 251 | pub async fn get_sct_token(&self, token_id: &Uuid) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 265 | pub async fn get_tokens_by_protocol(&self, protocol_id: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 280 | pub async fn get_tokens_by_creator(&self, creator: &Address) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 296 | pub async fn store_governance_proposal(&self, proposal: &GovernanceProposal) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 307 | pub async fn get_governance_proposal(&self, proposal_id: &Uuid) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 321 | pub async fn get_active_governance_proposals(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 338 | pub async fn get_database_stats(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DatabaseStats` is never constructed [INFO] [stdout] --> src/storage.rs:374:12 [INFO] [stdout] | [INFO] [stdout] 374 | pub struct DatabaseStats { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TransactionBuilder` is never constructed [INFO] [stdout] --> src/wallet.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 44 | pub struct TransactionBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/wallet.rs:72:12 [INFO] [stdout] | [INFO] [stdout] 55 | impl Wallet { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn from_keypair(keypair: KeyPair) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn public_key(&self) -> &[u8] { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn load_from_file>(path: P) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn create_transaction(&self, builder: TransactionBuilder) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | pub fn create_transfer(&self, to: Address, amount: u64, nonce: u64) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn create_stake_transaction(&self, amount: u64, nonce: u64) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 169 | pub fn create_unstake_transaction(&self, amount: u64, nonce: u64) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 184 | pub fn create_governance_vote(&self, proposal_id: String, vote: bool, nonce: u64) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 204 | pub fn create_sct_protocol_deployment(&self, protocol_data: Vec, nonce: u64) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn create_sct_token(&self, protocol_id: String, token_data: HashMap, nonce: u64) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | pub fn create_sct_transfer(&self, token_id: String, to: Address, amount: u64, nonce: u64) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 281 | fn calculate_fee(&self, tx_type: TransactionType, data: Option<&[u8]>) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 296 | pub fn add_transaction(&mut self, transaction: WalletTransaction) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 300 | pub fn update_balance(&mut self, balance: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 304 | pub fn update_staked_amount(&mut self, amount: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 308 | pub fn add_sct_token(&mut self, token_balance: SCTTokenBalance) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 312 | pub fn update_sct_token_balance(&mut self, token_id: &str, balance: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 318 | pub fn add_governance_vote(&mut self, proposal_id: String, vote: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 322 | pub fn get_transaction_history(&self) -> &[WalletTransaction] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 326 | pub fn get_sct_tokens(&self) -> &HashMap { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 330 | pub fn get_governance_votes(&self) -> &HashMap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 334 | pub fn get_available_balance(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 338 | pub fn can_stake(&self, amount: u64) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 342 | pub fn can_unstake(&self, amount: u64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 346 | pub fn has_voted_on_proposal(&self, proposal_id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WalletManager` is never constructed [INFO] [stdout] --> src/wallet.rs:352:12 [INFO] [stdout] | [INFO] [stdout] 352 | pub struct WalletManager { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/wallet.rs:358:12 [INFO] [stdout] | [INFO] [stdout] 357 | impl WalletManager { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 358 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 365 | pub fn create_wallet(&mut self) -> Address { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 377 | pub fn import_wallet(&mut self, wallet: Wallet) -> Address { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 388 | pub fn get_wallet(&self, address: &Address) -> Option<&Wallet> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 392 | pub fn get_wallet_mut(&mut self, address: &Address) -> Option<&mut Wallet> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 396 | pub fn get_default_wallet(&self) -> Option<&Wallet> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 400 | pub fn get_default_wallet_mut(&mut self) -> Option<&mut Wallet> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 405 | pub fn set_default_wallet(&mut self, address: Address) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 414 | pub fn list_wallets(&self) -> Vec
{ [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 418 | pub fn remove_wallet(&mut self, address: &Address) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 428 | pub fn save_all_wallets(&self, directory: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 448 | pub fn load_all_wallets(&mut self, directory: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/multinode.rs:374:13 [INFO] [stdout] | [INFO] [stdout] 374 | blockchain.add_pending_transaction(transaction.clone()).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 374 | let _ = blockchain.add_pending_transaction(transaction.clone()).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/multinode.rs:544:13 [INFO] [stdout] | [INFO] [stdout] 544 | blockchain.add_pending_transaction(transaction.clone()).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 544 | let _ = blockchain.add_pending_transaction(transaction.clone()).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `string_to_address` is never used [INFO] [stdout] --> src/api.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn string_to_address(s: &str) -> Result
{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ApiResponse` is never constructed [INFO] [stdout] --> src/api.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct ApiResponse { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `success` and `error` are never used [INFO] [stdout] --> src/api.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 36 | impl ApiResponse { [INFO] [stdout] | ---------------------- associated functions in this implementation [INFO] [stdout] 37 | pub fn success(data: T) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn error(message: String) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TransactionRequest` is never constructed [INFO] [stdout] --> src/api.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 57 | pub struct TransactionRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SCTProtocolRequest` is never constructed [INFO] [stdout] --> src/api.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 67 | pub struct SCTProtocolRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SCTTokenRequest` is never constructed [INFO] [stdout] --> src/api.rs:76:12 [INFO] [stdout] | [INFO] [stdout] 76 | pub struct SCTTokenRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GovernanceProposalRequest` is never constructed [INFO] [stdout] --> src/api.rs:86:12 [INFO] [stdout] | [INFO] [stdout] 86 | pub struct GovernanceProposalRequest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BalanceResponse` is never constructed [INFO] [stdout] --> src/api.rs:96:12 [INFO] [stdout] | [INFO] [stdout] 96 | pub struct BalanceResponse { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BlockResponse` is never constructed [INFO] [stdout] --> src/api.rs:104:12 [INFO] [stdout] | [INFO] [stdout] 104 | pub struct BlockResponse { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `WebSocketMessage` is never used [INFO] [stdout] --> src/api.rs:117:10 [INFO] [stdout] | [INFO] [stdout] 117 | pub enum WebSocketMessage { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FreedomAPI` is never constructed [INFO] [stdout] --> src/api.rs:146:12 [INFO] [stdout] | [INFO] [stdout] 146 | pub struct FreedomAPI { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `start_server`, `start_event_broadcaster`, and `broadcast_to_all_clients` are never used [INFO] [stdout] --> src/api.rs:152:12 [INFO] [stdout] | [INFO] [stdout] 151 | impl FreedomAPI { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 152 | pub fn new(multinode: Arc>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 159 | pub async fn start_server(&self, port: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 259 | async fn start_event_broadcaster(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 289 | async fn broadcast_to_all_clients( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `with_multinode` is never used [INFO] [stdout] --> src/api.rs:301:4 [INFO] [stdout] | [INFO] [stdout] 301 | fn with_multinode( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `WebSocketClients` is never used [INFO] [stdout] --> src/api.rs:307:6 [INFO] [stdout] | [INFO] [stdout] 307 | type WebSocketClients = Arc>>>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `with_websocket_clients` is never used [INFO] [stdout] --> src/api.rs:309:4 [INFO] [stdout] | [INFO] [stdout] 309 | fn with_websocket_clients( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_node_status` is never used [INFO] [stdout] --> src/api.rs:316:10 [INFO] [stdout] | [INFO] [stdout] 316 | async fn get_node_status(multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_balance` is never used [INFO] [stdout] --> src/api.rs:322:10 [INFO] [stdout] | [INFO] [stdout] 322 | async fn get_balance(address: String, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_block` is never used [INFO] [stdout] --> src/api.rs:344:10 [INFO] [stdout] | [INFO] [stdout] 344 | async fn get_block(height: u64, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `submit_transaction` is never used [INFO] [stdout] --> src/api.rs:365:10 [INFO] [stdout] | [INFO] [stdout] 365 | async fn submit_transaction(request: TransactionRequest, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `deploy_sct_protocol` is never used [INFO] [stdout] --> src/api.rs:373:10 [INFO] [stdout] | [INFO] [stdout] 373 | async fn deploy_sct_protocol(request: SCTProtocolRequest, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_sct_token` is never used [INFO] [stdout] --> src/api.rs:381:10 [INFO] [stdout] | [INFO] [stdout] 381 | async fn create_sct_token(request: SCTTokenRequest, multinode: Arc>) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_governance_proposal` is never used [INFO] [stdout] --> src/api.rs:389:10 [INFO] [stdout] | [INFO] [stdout] 389 | async fn create_governance_proposal(request: GovernanceProposalRequest, multinode: Arc>) -> Result src/api.rs:398:10 [INFO] [stdout] | [INFO] [stdout] 398 | async fn handle_websocket( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `handle_rejection` is never used [INFO] [stdout] --> src/api.rs:468:10 [INFO] [stdout] | [INFO] [stdout] 468 | async fn handle_rejection(err: Rejection) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/blockchain.rs:457:14 [INFO] [stdout] | [INFO] [stdout] 90 | impl Blockchain { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 457 | async fn call_contract(&mut self, contract_address: Address, method: String, args: Vec) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 465 | pub fn get_account(&self, address: &Address) -> Option<&Account> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 469 | pub fn get_chain_state(&self) -> &ChainState { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 473 | pub fn get_pending_transactions(&self) -> &[Transaction] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 477 | pub async fn get_block(&self, height: u64) -> Result> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 481 | pub fn get_balance(&self, address: &Address) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 489 | pub fn get_pending_transaction_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 493 | pub async fn get_block_by_height(&self, height: u64) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 497 | pub fn get_account_balance(&self, address: &Address) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `save` is never used [INFO] [stdout] --> src/config.rs:147:12 [INFO] [stdout] | [INFO] [stdout] 106 | impl NodeConfig { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 147 | pub fn save(&self, path: &Path) -> Result<()> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Attestation` is never constructed [INFO] [stdout] --> src/consensus.rs:56:12 [INFO] [stdout] | [INFO] [stdout] 56 | pub struct Attestation { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `config` is never read [INFO] [stdout] --> src/consensus.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 63 | pub struct ConsensusEngine { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] 64 | config: ConsensusConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/consensus.rs:103:12 [INFO] [stdout] | [INFO] [stdout] 71 | impl ConsensusEngine { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn is_validator(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn add_validator(&mut self, address: Address, staked_amount: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn remove_validator(&mut self, address: &Address) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub fn update_validator_stake(&mut self, address: &Address, new_stake: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 174 | fn calculate_voting_power(&self, staked_amount: u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | fn update_block_production_schedule(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 212 | pub fn get_next_validator(&mut self) -> Option
{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | pub fn validate_block_producer(&self, block: &Block) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 318 | pub fn finalize_block(&mut self, block_hash: Hash, block_height: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 328 | pub fn slash_validator(&mut self, validator_address: &Address, reason: SlashReason) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 351 | pub fn process_epoch_end(&mut self, current_height: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 362 | fn start_new_epoch(&mut self, height: u64) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 385 | pub fn calculate_block_reward(&self, block_height: u64) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 410 | pub fn get_validator_stats(&self) -> ValidatorStats { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 426 | pub fn get_current_epoch(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 430 | pub fn get_validator_set(&self) -> &ValidatorSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 434 | pub fn get_finalized_height(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 438 | pub fn is_block_finalized(&self, height: u64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SlashReason` is never used [INFO] [stdout] --> src/consensus.rs:444:10 [INFO] [stdout] | [INFO] [stdout] 444 | pub enum SlashReason { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ValidatorStats` is never constructed [INFO] [stdout] --> src/consensus.rs:452:12 [INFO] [stdout] | [INFO] [stdout] 452 | pub struct ValidatorStats { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ConsensusMetrics` is never constructed [INFO] [stdout] --> src/consensus.rs:461:12 [INFO] [stdout] | [INFO] [stdout] 461 | pub struct ConsensusMetrics { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `public_key` is never used [INFO] [stdout] --> src/crypto.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl KeyPair { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn public_key(&self) -> PublicKey { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `freedom_format_to_address` is never used [INFO] [stdout] --> src/crypto.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn freedom_format_to_address(address_str: &str) -> Result
{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `address_zero` is never used [INFO] [stdout] --> src/crypto.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | pub fn address_zero() -> Address { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `address_from_string` is never used [INFO] [stdout] --> src/crypto.rs:78:8 [INFO] [stdout] | [INFO] [stdout] 78 | pub fn address_from_string(address_str: &str) -> Result
{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `from_hex` is never used [INFO] [stdout] --> src/crypto.rs:135:8 [INFO] [stdout] | [INFO] [stdout] 135 | pub fn from_hex(hex_str: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MultinodeStatus` is never constructed [INFO] [stdout] --> src/multinode.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 52 | pub struct MultinodeStatus { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `config`, `node_id`, and `start_time` are never read [INFO] [stdout] --> src/multinode.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 66 | pub struct FreedomMultinode { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 67 | // Core components [INFO] [stdout] 68 | config: NodeConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 77 | node_id: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 78 | is_validator: bool, [INFO] [stdout] 79 | start_time: Instant, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `contracts_executed`, `network_messages_sent`, `network_messages_received`, `average_block_time`, and `sync_duration` are never read [INFO] [stdout] --> src/multinode.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 93 | pub struct MultinodeMetrics { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 96 | pub contracts_executed: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 97 | pub network_messages_sent: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 98 | pub network_messages_received: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 99 | pub average_block_time: Duration, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 100 | pub sync_duration: Duration, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MultinodeMetrics` 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 methods are never used [INFO] [stdout] --> src/multinode.rs:514:18 [INFO] [stdout] | [INFO] [stdout] 119 | impl FreedomMultinode { [INFO] [stdout] | --------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 514 | pub async fn get_status(&self) -> MultinodeStatus { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 539 | pub async fn submit_transaction(&self, transaction: Transaction) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 558 | pub async fn get_block(&self, height: u64) -> Result> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 563 | pub async fn get_balance(&self, address: &Address) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 568 | pub async fn deploy_sct_protocol(&self, protocol: SCTProtocol, creator_keypair: &KeyPair) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 588 | pub async fn create_sct_token(&self, token: SCTToken, creator_keypair: &KeyPair) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 608 | pub fn get_event_sender(&self) -> mpsc::UnboundedSender { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 612 | pub async fn shutdown(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start_multinode` is never used [INFO] [stdout] --> src/multinode.rs:621:14 [INFO] [stdout] | [INFO] [stdout] 621 | pub async fn start_multinode(config_path: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NetworkStats` is never constructed [INFO] [stdout] --> src/multinode.rs:633:12 [INFO] [stdout] | [INFO] [stdout] 633 | pub struct NetworkStats { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/multinode.rs:642:12 [INFO] [stdout] | [INFO] [stdout] 641 | impl NetworkStats { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] 642 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `deploy_protocol` and `create_token` are never used [INFO] [stdout] --> src/multinode.rs:680:18 [INFO] [stdout] | [INFO] [stdout] 660 | impl SmartContractVM { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 680 | pub async fn deploy_protocol(&mut self, _protocol_data: &crate::smart_contracts::SCTData) -> anyhow::Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 686 | pub async fn create_token(&mut self, _token_data: &crate::smart_contracts::SCTData) -> anyhow::Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `initialize` is never used [INFO] [stdout] --> src/network/mod.rs:25:14 [INFO] [stdout] | [INFO] [stdout] 25 | pub async fn initialize() -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `local_node_id`, `bootstrap_peers`, `discovery_socket`, `message_sender`, `discovery_cache`, and `local_interfaces` are never read [INFO] [stdout] --> src/network/discovery.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct PeerDiscovery { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 19 | /// Local node ID [INFO] [stdout] 20 | local_node_id: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | bootstrap_peers: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 25 | /// Discovery UDP socket [INFO] [stdout] 26 | discovery_socket: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 27 | /// Discovery message channel [INFO] [stdout] 28 | message_sender: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 29 | /// Peer discovery cache [INFO] [stdout] 30 | discovery_cache: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 31 | /// Local network interfaces [INFO] [stdout] 32 | local_interfaces: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PeerDiscovery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `peer_info`, `discovered_at`, `last_response`, `response_count`, and `is_bootstrap` are never read [INFO] [stdout] --> src/network/discovery.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 37 | struct DiscoveryEntry { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 38 | peer_info: PeerInfo, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 39 | discovered_at: Instant, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 40 | last_response: Instant, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 41 | response_count: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 42 | is_bootstrap: bool, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DiscoveryEntry` 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: enum `DiscoveryMessage` is never used [INFO] [stdout] --> src/network/discovery.rs:47:10 [INFO] [stdout] | [INFO] [stdout] 47 | pub enum DiscoveryMessage { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/network/discovery.rs:117:18 [INFO] [stdout] | [INFO] [stdout] 95 | impl PeerDiscovery { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 117 | pub async fn initialize( [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 138 | async fn discover_local_interfaces(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 151 | async fn start_discovery_tasks(&self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 187 | async fn local_network_scan_task(socket: Arc, local_id: String) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 208 | async fn scan_network_range(socket: &UdpSocket, local_id: &str, range: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 232 | async fn bootstrap_discovery_task( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 255 | async fn peer_maintenance_task(socket: Arc, local_id: String) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 285 | pub async fn handle_discovery_message(&mut self, data: &[u8], from: SocketAddr) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 322 | async fn handle_peer_announcement( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 368 | async fn handle_peer_request(&mut self, requesting_node: String, from: SocketAddr, max_peers: u32) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 393 | async fn handle_peer_response(&mut self, _responding_node: String, peers: Vec) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 421 | async fn handle_ping(&mut self, node_id: String, from: SocketAddr, timestamp: u64, sequence: u32) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 442 | async fn handle_pong(&mut self, node_id: String, _from: SocketAddr, _timestamp: u64, _sequence: u32) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 453 | async fn handle_local_scan(&mut self, node_id: String, from: SocketAddr, port: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 475 | async fn handle_bootstrap_request(&mut self, node_id: String, from: SocketAddr, need_peers: bool) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 504 | pub fn peer_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 509 | pub async fn announce_self(&self, listen_port: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 538 | pub fn cleanup_old_peers(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MessageType` is never used [INFO] [stdout] --> src/network/message.rs:54:10 [INFO] [stdout] | [INFO] [stdout] 54 | pub enum MessageType { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `message_type`, `requires_auth`, and `target_peer` are never used [INFO] [stdout] --> src/network/message.rs:108:12 [INFO] [stdout] | [INFO] [stdout] 106 | impl NetworkMessage { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] 107 | /// Get the message type for routing purposes [INFO] [stdout] 108 | pub fn message_type(&self) -> MessageType { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 157 | pub fn requires_auth(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn target_peer(&self) -> Option<&str> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `touch`, `is_direct_reachable`, and `best_address` are never used [INFO] [stdout] --> src/network/message.rs:178:12 [INFO] [stdout] | [INFO] [stdout] 176 | impl PeerInfo { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 177 | /// Create new peer info [INFO] [stdout] 178 | pub fn new(peer_id: String, address: String, port: u16) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 194 | pub fn touch(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | pub fn is_direct_reachable(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 204 | pub fn best_address(&self) -> (String, u16) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new_text` and `new_system` are never used [INFO] [stdout] --> src/network/message.rs:215:12 [INFO] [stdout] | [INFO] [stdout] 213 | impl ChatMessage { [INFO] [stdout] | ---------------- associated functions in this implementation [INFO] [stdout] 214 | /// Create a new text chat message [INFO] [stdout] 215 | pub fn new_text(from: String, to: Option, content: String) -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn new_system(content: String) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `target_peer`, `target_addr`, and `started_at` are never read [INFO] [stdout] --> src/network/nat.rs:49:9 [INFO] [stdout] | [INFO] [stdout] 48 | pub struct HolePunchAttempt { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 49 | pub target_peer: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 50 | pub target_addr: SocketAddr, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 51 | pub started_at: Instant, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `HolePunchAttempt` 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 methods are never used [INFO] [stdout] --> src/network/nat.rs:96:18 [INFO] [stdout] | [INFO] [stdout] 74 | impl NatTraversal { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 96 | pub async fn initialize(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 249 | pub async fn handle_hole_punch_packet(&self, data: &[u8], from: SocketAddr) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 268 | pub fn external_mapping(&self) -> Option<(IpAddr, u16)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 273 | pub fn can_direct_connect(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 283 | pub fn find_relay_for_peer(&self, _target_peer: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 290 | pub fn get_punch_stats(&self) -> Vec<&HolePunchAttempt> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 295 | pub fn cleanup_old_attempts(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `traversal_difficulty` and `supports_hole_punching` are never used [INFO] [stdout] --> src/network/nat.rs:308:12 [INFO] [stdout] | [INFO] [stdout] 306 | impl NatType { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] 307 | /// Get difficulty level for NAT traversal [INFO] [stdout] 308 | pub fn traversal_difficulty(&self) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 320 | pub fn supports_hole_punching(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `relay_servers`, `active_relays`, `relay_client`, and `message_sender` are never read [INFO] [stdout] --> src/network/relay.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct RelayManager { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 19 | /// Available relay servers [INFO] [stdout] 20 | relay_servers: Arc>>, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 21 | /// Active relay connections [INFO] [stdout] 22 | active_relays: Arc>>, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 23 | /// Relay client for connecting through relays [INFO] [stdout] 24 | relay_client: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 25 | /// Message sender for relayed messages [INFO] [stdout] 26 | message_sender: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RelayManager` 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 fields are never read [INFO] [stdout] --> src/network/relay.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 31 | pub struct RelayServer { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 32 | pub id: String, [INFO] [stdout] 33 | pub address: SocketAddr, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 34 | pub capacity: u32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 35 | pub current_connections: u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 36 | pub location: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 37 | pub last_seen: Instant, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 38 | pub latency: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 39 | pub reliability: f32, // 0.0 to 1.0 [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RelayServer` 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: method `start` is never used [INFO] [stdout] --> src/network/relay.rs:58:18 [INFO] [stdout] | [INFO] [stdout] 42 | impl RelayServer { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 58 | pub async fn start(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `relay_id`, `target_peer`, `established_at`, `bytes_sent`, `bytes_received`, and `last_activity` are never read [INFO] [stdout] --> src/network/relay.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 74 | pub struct RelayConnection { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 75 | pub relay_id: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 76 | pub target_peer: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 77 | pub established_at: Instant, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 78 | pub bytes_sent: u64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 79 | pub bytes_received: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 80 | pub last_activity: Instant, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RelayConnection` 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 `local_peer_id`, `relay_stream`, and `message_receiver` are never read [INFO] [stdout] --> src/network/relay.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 85 | pub struct RelayClient { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 86 | local_peer_id: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 87 | connected_relay: Option, [INFO] [stdout] 88 | relay_stream: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 89 | message_receiver: mpsc::UnboundedReceiver, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RelayClient` 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 `RelayServerImpl` is never constructed [INFO] [stdout] --> src/network/relay.rs:115:12 [INFO] [stdout] | [INFO] [stdout] 115 | pub struct RelayServerImpl { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RelayPeerConnection` is never constructed [INFO] [stdout] --> src/network/relay.rs:124:8 [INFO] [stdout] | [INFO] [stdout] 124 | struct RelayPeerConnection { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RelayMessage` is never used [INFO] [stdout] --> src/network/relay.rs:133:10 [INFO] [stdout] | [INFO] [stdout] 133 | pub enum RelayMessage { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/network/relay.rs:170:12 [INFO] [stdout] | [INFO] [stdout] 158 | impl RelayManager { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 170 | pub fn initialize(&mut self, message_sender: mpsc::UnboundedSender) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | pub async fn add_relay_server(&self, server: RelayServer) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | pub async fn find_best_relay(&self, _target_peer: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 197 | pub async fn connect_through_relay( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 253 | pub async fn send_through_relay( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 279 | async fn send_relay_message(&self, message: &RelayMessage) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 291 | pub async fn handle_relay_message(&mut self, data: &[u8]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 341 | pub async fn get_relay_stats(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 347 | pub async fn cleanup_inactive_connections(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 354 | pub async fn get_available_relays(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `start`, and `handle_connection` are never used [INFO] [stdout] --> src/network/relay.rs:365:12 [INFO] [stdout] | [INFO] [stdout] 363 | impl RelayServerImpl { [INFO] [stdout] | -------------------- associated items in this implementation [INFO] [stdout] 364 | /// Create new relay server [INFO] [stdout] 365 | pub fn new(id: String, listen_addr: SocketAddr, max_connections: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 375 | pub async fn start(&self) -> Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 400 | async fn handle_connection( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `listen_addr` and `listener` are never read [INFO] [stdout] --> src/network/transport.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct Transport { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 19 | /// Local listening address [INFO] [stdout] 20 | listen_addr: SocketAddr, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 21 | /// TCP listener [INFO] [stdout] 22 | listener: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Transport` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `peer_id`, `established_at`, and `connection_type` are never read [INFO] [stdout] --> src/network/transport.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 33 | pub struct Connection { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 34 | pub peer_id: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 35 | pub stream: TcpStream, [INFO] [stdout] 36 | pub established_at: Instant, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub connection_type: ConnectionType, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Connection` 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 `bytes_sent`, `bytes_received`, and `connection_errors` are never read [INFO] [stdout] --> src/network/transport.rs:48:9 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct TransportStats { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 48 | pub bytes_sent: u64, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 49 | pub bytes_received: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 50 | pub connection_errors: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TransportStats` 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 `Inbound` is never constructed [INFO] [stdout] --> src/network/transport.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 56 | pub enum ConnectionType { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] 57 | Inbound, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ConnectionType` 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 `KEEPALIVE_INTERVAL` is never used [INFO] [stdout] --> src/network/transport.rs:78:11 [INFO] [stdout] | [INFO] [stdout] 78 | pub const KEEPALIVE_INTERVAL: Duration = Duration::from_secs(60); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `initialize`, `start_accept_loop`, `handle_inbound_connection`, `get_connected_peers`, and `get_stats` are never used [INFO] [stdout] --> src/network/transport.rs:93:18 [INFO] [stdout] | [INFO] [stdout] 80 | impl Transport { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 93 | pub async fn initialize(&mut self, message_sender: mpsc::UnboundedSender) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | async fn start_accept_loop(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | async fn handle_inbound_connection( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 409 | pub async fn get_connected_peers(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 421 | pub async fn get_stats(&self) -> TransportStats { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/network/config.rs:284:12 [INFO] [stdout] | [INFO] [stdout] 282 | impl NetworkConfig { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 283 | /// Load configuration from file [INFO] [stdout] 284 | pub fn load_from_file>(path: P) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 291 | pub fn save_to_file>(&self, path: P) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 298 | pub fn create_default_config>(path: P) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 340 | pub fn external_socket_addr(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 349 | pub fn connection_timeout(&self) -> Duration { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 354 | pub fn keepalive_interval(&self) -> Duration { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 359 | pub fn nat_detection_timeout(&self) -> Duration { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 364 | pub fn hole_punch_timeout(&self) -> Duration { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 379 | pub fn local_scan_interval(&self) -> Duration { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 396 | pub fn is_chat_enabled(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 400 | pub fn is_local_scan_enabled(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 405 | pub fn stun_server_addrs(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 412 | pub fn bootstrap_peer_addrs(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 426 | pub fn set_node_id(&mut self, node_id: String) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `relay_manager` is never read [INFO] [stdout] --> src/network/multinode.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct MultiNode { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 36 | relay_manager: RelayManager, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MultiNode` 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 methods are never used [INFO] [stdout] --> src/network/multinode.rs:135:18 [INFO] [stdout] | [INFO] [stdout] 71 | impl MultiNode { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 135 | pub async fn start(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 223 | async fn start_nat_detection(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 288 | async fn start_peer_discovery(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 458 | async fn remove_connected_peer(&mut self, peer_id: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 501 | pub async fn send_chat_message(&self, content: String, recipient: Option) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 578 | pub async fn get_stats(&self) -> NodeStats { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 590 | pub fn get_chat_history(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 627 | pub fn get_message_sender(&self) -> mpsc::UnboundedSender { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `handle_message`, `handle_peer_disconnected`, and `name` are never used [INFO] [stdout] --> src/network/behaviour.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub trait NetworkBehaviour: Send + Sync { [INFO] [stdout] | ---------------- methods in this trait [INFO] [stdout] 14 | /// Handle incoming network message [INFO] [stdout] 15 | fn handle_message(&mut self, message: NetworkMessage, peer_id: &str) -> Result>; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | fn handle_peer_disconnected(&mut self, peer_id: &str) -> Result<()>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | fn name(&self) -> &str; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `node_id`, `message_history`, `max_history`, and `message_sender` are never read [INFO] [stdout] --> src/network/behaviour.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct ChatBehaviour { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 30 | /// Node ID [INFO] [stdout] 31 | node_id: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 32 | /// Chat history [INFO] [stdout] 33 | message_history: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 34 | /// Maximum history size [INFO] [stdout] 35 | max_history: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | message_sender: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ChatBehaviour` 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 `node_id`, `block_cache`, and `transaction_pool` are never read [INFO] [stdout] --> src/network/behaviour.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 54 | pub struct BlockchainBehaviour { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 55 | /// Node ID [INFO] [stdout] 56 | node_id: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 57 | /// Block cache [INFO] [stdout] 58 | block_cache: HashMap, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 59 | /// Transaction pool [INFO] [stdout] 60 | transaction_pool: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BlockchainBehaviour` 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 `node_id` and `discovery_interval` are never read [INFO] [stdout] --> src/network/behaviour.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 88 | pub struct DiscoveryBehaviour { [INFO] [stdout] | ------------------ fields in this struct [INFO] [stdout] 89 | /// Node ID [INFO] [stdout] 90 | node_id: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 96 | discovery_interval: Duration, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DiscoveryBehaviour` 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 `add_to_history`, `get_history`, `get_connected_peers`, and `set_message_sender` are never used [INFO] [stdout] --> src/network/behaviour.rs:125:12 [INFO] [stdout] | [INFO] [stdout] 112 | impl ChatBehaviour { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 125 | pub fn add_to_history(&mut self, entry: ChatHistoryEntry) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn get_history(&self) -> &[ChatHistoryEntry] { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn get_connected_peers(&self) -> Vec<&PeerInfo> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn set_message_sender(&mut self, sender: mpsc::UnboundedSender) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `add_transaction`, `get_transaction_pool`, `add_block`, and `get_block` are never used [INFO] [stdout] --> src/network/behaviour.rs:209:12 [INFO] [stdout] | [INFO] [stdout] 197 | impl BlockchainBehaviour { [INFO] [stdout] | ------------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 209 | pub fn add_transaction(&mut self, tx: TransactionData) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 214 | pub fn get_transaction_pool(&self) -> &[TransactionData] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 219 | pub fn add_block(&mut self, block: BlockData) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 224 | pub fn get_block(&self, hash: &str) -> Option<&BlockData> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_known_peers` and `cleanup_stale_peers` are never used [INFO] [stdout] --> src/network/behaviour.rs:276:12 [INFO] [stdout] | [INFO] [stdout] 258 | impl DiscoveryBehaviour { [INFO] [stdout] | ----------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 276 | pub fn get_known_peers(&self) -> Vec<&PeerInfo> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 281 | pub fn cleanup_stale_peers(&mut self, max_age: Duration) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `handle_message`, `handle_peer_disconnected`, `send_message`, `get_chat_history`, `get_connected_peers`, and `cleanup_stale_peers` are never used [INFO] [stdout] --> src/network/behaviour.rs:372:12 [INFO] [stdout] | [INFO] [stdout] 355 | impl FreedomNetBehaviour { [INFO] [stdout] | ------------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 372 | pub fn handle_message(&mut self, message: NetworkMessage, peer_id: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 401 | pub fn handle_peer_disconnected(&mut self, peer_id: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 409 | pub fn send_message(&self, message: NetworkMessage) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 419 | pub fn get_chat_history(&self) -> &[ChatHistoryEntry] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 424 | pub fn get_connected_peers(&self) -> Vec<&PeerInfo> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 429 | pub fn cleanup_stale_peers(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `tokens` and `governance_proposals` are never read [INFO] [stdout] --> src/smart_contracts.rs:255:5 [INFO] [stdout] | [INFO] [stdout] 253 | pub struct VirtualMachine { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] 254 | protocols: HashMap, [INFO] [stdout] 255 | tokens: HashMap, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 256 | core_contracts: HashMap, [INFO] [stdout] 257 | governance_proposals: HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/smart_contracts.rs:364:18 [INFO] [stdout] | [INFO] [stdout] 260 | impl VirtualMachine { [INFO] [stdout] | ------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 364 | pub async fn create_sct_protocol(&mut self, creator: Address, protocol: SCTProtocol) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 380 | pub async fn create_sct_token( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 440 | fn validate_field_values( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 474 | pub async fn call_contract(&mut self, contract: &SmartContract, method: &str, args: &[u8]) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 480 | pub async fn create_governance_proposal( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 518 | pub fn get_sct_protocols(&self) -> &HashMap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 523 | pub fn get_sct_token(&self, token_id: &Uuid) -> Option<&SCTToken> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 528 | pub fn get_core_balance(&self, token_type: &CoreTokenType, address: &Address) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TREE_SCT_PROTOCOLS` is never used [INFO] [stdout] --> src/storage.rs:16:7 [INFO] [stdout] | [INFO] [stdout] 16 | const TREE_SCT_PROTOCOLS: &str = "sct_protocols"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TREE_SCT_TOKENS` is never used [INFO] [stdout] --> src/storage.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const TREE_SCT_TOKENS: &str = "sct_tokens"; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TREE_GOVERNANCE` is never used [INFO] [stdout] --> src/storage.rs:18:7 [INFO] [stdout] | [INFO] [stdout] 18 | const TREE_GOVERNANCE: &str = "governance"; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TREE_TRANSACTIONS` is never used [INFO] [stdout] --> src/storage.rs:19:7 [INFO] [stdout] | [INFO] [stdout] 19 | const TREE_TRANSACTIONS: &str = "transactions"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/storage.rs:55:18 [INFO] [stdout] | [INFO] [stdout] 25 | impl Storage { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 55 | pub async fn get_block(&self, height: u64) -> Result> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub async fn get_latest_blocks(&self, count: usize) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | pub async fn get_account(&self, address: &Address) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | pub async fn store_contract(&self, contract: &SmartContract) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 171 | pub async fn get_contract(&self, address: &Address) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | pub async fn store_sct_protocol(&self, protocol: &SCTProtocol) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | pub async fn get_sct_protocol(&self, protocol_id: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 225 | pub async fn get_all_sct_protocols(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 240 | pub async fn store_sct_token(&self, token: &SCTToken) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 251 | pub async fn get_sct_token(&self, token_id: &Uuid) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 265 | pub async fn get_tokens_by_protocol(&self, protocol_id: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 280 | pub async fn get_tokens_by_creator(&self, creator: &Address) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 296 | pub async fn store_governance_proposal(&self, proposal: &GovernanceProposal) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 307 | pub async fn get_governance_proposal(&self, proposal_id: &Uuid) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 321 | pub async fn get_active_governance_proposals(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 338 | pub async fn get_database_stats(&self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DatabaseStats` is never constructed [INFO] [stdout] --> src/storage.rs:374:12 [INFO] [stdout] | [INFO] [stdout] 374 | pub struct DatabaseStats { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TransactionBuilder` is never constructed [INFO] [stdout] --> src/wallet.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 44 | pub struct TransactionBuilder { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/wallet.rs:72:12 [INFO] [stdout] | [INFO] [stdout] 55 | impl Wallet { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn from_keypair(keypair: KeyPair) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 91 | pub fn public_key(&self) -> &[u8] { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 101 | pub fn load_from_file>(path: P) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub fn create_transaction(&self, builder: TransactionBuilder) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 139 | pub fn create_transfer(&self, to: Address, amount: u64, nonce: u64) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 154 | pub fn create_stake_transaction(&self, amount: u64, nonce: u64) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 169 | pub fn create_unstake_transaction(&self, amount: u64, nonce: u64) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 184 | pub fn create_governance_vote(&self, proposal_id: String, vote: bool, nonce: u64) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 204 | pub fn create_sct_protocol_deployment(&self, protocol_data: Vec, nonce: u64) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 227 | pub fn create_sct_token(&self, protocol_id: String, token_data: HashMap, nonce: u64) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 252 | pub fn create_sct_transfer(&self, token_id: String, to: Address, amount: u64, nonce: u64) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 281 | fn calculate_fee(&self, tx_type: TransactionType, data: Option<&[u8]>) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 296 | pub fn add_transaction(&mut self, transaction: WalletTransaction) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 300 | pub fn update_balance(&mut self, balance: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 304 | pub fn update_staked_amount(&mut self, amount: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 308 | pub fn add_sct_token(&mut self, token_balance: SCTTokenBalance) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 312 | pub fn update_sct_token_balance(&mut self, token_id: &str, balance: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 318 | pub fn add_governance_vote(&mut self, proposal_id: String, vote: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 322 | pub fn get_transaction_history(&self) -> &[WalletTransaction] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 326 | pub fn get_sct_tokens(&self) -> &HashMap { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 330 | pub fn get_governance_votes(&self) -> &HashMap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 334 | pub fn get_available_balance(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 338 | pub fn can_stake(&self, amount: u64) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 342 | pub fn can_unstake(&self, amount: u64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 346 | pub fn has_voted_on_proposal(&self, proposal_id: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WalletManager` is never constructed [INFO] [stdout] --> src/wallet.rs:352:12 [INFO] [stdout] | [INFO] [stdout] 352 | pub struct WalletManager { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/wallet.rs:358:12 [INFO] [stdout] | [INFO] [stdout] 357 | impl WalletManager { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 358 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 365 | pub fn create_wallet(&mut self) -> Address { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 377 | pub fn import_wallet(&mut self, wallet: Wallet) -> Address { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 388 | pub fn get_wallet(&self, address: &Address) -> Option<&Wallet> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 392 | pub fn get_wallet_mut(&mut self, address: &Address) -> Option<&mut Wallet> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 396 | pub fn get_default_wallet(&self) -> Option<&Wallet> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 400 | pub fn get_default_wallet_mut(&mut self) -> Option<&mut Wallet> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 405 | pub fn set_default_wallet(&mut self, address: Address) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 414 | pub fn list_wallets(&self) -> Vec
{ [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 418 | pub fn remove_wallet(&mut self, address: &Address) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 428 | pub fn save_all_wallets(&self, directory: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 448 | pub fn load_all_wallets(&mut self, directory: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/multinode.rs:374:13 [INFO] [stdout] | [INFO] [stdout] 374 | blockchain.add_pending_transaction(transaction.clone()).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 374 | let _ = blockchain.add_pending_transaction(transaction.clone()).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/multinode.rs:544:13 [INFO] [stdout] | [INFO] [stdout] 544 | blockchain.add_pending_transaction(transaction.clone()).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 544 | let _ = blockchain.add_pending_transaction(transaction.clone()).await; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 46.33s [INFO] running `Command { std: "docker" "inspect" "6b14c1eade40669ada36081388ced49a6b71069e7b600cccfbcb33bce2c5dba4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6b14c1eade40669ada36081388ced49a6b71069e7b600cccfbcb33bce2c5dba4", kill_on_drop: false }` [INFO] [stdout] 6b14c1eade40669ada36081388ced49a6b71069e7b600cccfbcb33bce2c5dba4