[INFO] cloning repository https://github.com/mi4uu/r-squared-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mi4uu/r-squared-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmi4uu%2Fr-squared-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmi4uu%2Fr-squared-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 49b756b12a421514ed283810f467e0bce9fff9a1
[INFO] building mi4uu/r-squared-rust against master#c7f6aa2869acdbf014d094c6e427e554e160b6db for pr-146237-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmi4uu%2Fr-squared-rust" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/mi4uu/r-squared-rust
[INFO] finished tweaking git repo https://github.com/mi4uu/r-squared-rust
[INFO] tweaked toml for git repo https://github.com/mi4uu/r-squared-rust written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mi4uu/r-squared-rust on toolchain c7f6aa2869acdbf014d094c6e427e554e160b6db
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mi4uu/r-squared-rust 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" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio-test v0.4.4
[INFO] [stderr]   Downloaded bitcoin-io v0.1.3
[INFO] [stderr]   Downloaded hex-conservative v0.2.1
[INFO] [stderr]   Downloaded ciborium-io v0.2.2
[INFO] [stderr]   Downloaded data-encoding-macro-internal v0.1.16
[INFO] [stderr]   Downloaded bitcoin_hashes v0.14.0
[INFO] [stderr]   Downloaded multibase v0.9.1
[INFO] [stderr]   Downloaded rand_xorshift v0.4.0
[INFO] [stderr]   Downloaded pkcs8 v0.9.0
[INFO] [stderr]   Downloaded crypto-bigint v0.4.9
[INFO] [stderr]   Downloaded base16ct v0.1.1
[INFO] [stderr]   Downloaded signature v1.6.4
[INFO] [stderr]   Downloaded unty v0.0.4
[INFO] [stderr]   Downloaded ipfs-api-backend-hyper v0.6.0
[INFO] [stderr]   Downloaded rfc6979 v0.3.1
[INFO] [stderr]   Downloaded aws-sdk-sts v1.75.0
[INFO] [stderr]   Downloaded sec1 v0.3.0
[INFO] [stderr]   Downloaded aws-sigv4 v1.3.3
[INFO] [stderr]   Downloaded h2 v0.4.10
[INFO] [stderr]   Downloaded aws-smithy-json v0.61.4
[INFO] [stderr]   Downloaded der v0.6.1
[INFO] [stderr]   Downloaded aws-smithy-http-client v1.0.5
[INFO] [stderr]   Downloaded aws-smithy-types v1.3.2
[INFO] [stderr]   Downloaded aws-smithy-runtime v1.8.3
[INFO] [stderr]   Downloaded aws-sdk-sso v1.73.0
[INFO] [stderr]   Downloaded aws-config v1.8.0
[INFO] [stderr]   Downloaded color-spantrace v0.3.0
[INFO] [stderr]   Downloaded aws-sdk-ssooidc v1.74.0
[INFO] [stderr]   Downloaded bincode v2.0.1
[INFO] [stderr]   Downloaded aws-runtime v1.5.8
[INFO] [stderr]   Downloaded owo-colors v4.2.2
[INFO] [stderr]   Downloaded anes v0.1.6
[INFO] [stderr]   Downloaded clap_builder v4.5.40
[INFO] [stderr]   Downloaded clap v4.5.40
[INFO] [stderr]   Downloaded ipfs-api-prelude v0.6.0
[INFO] [stderr]   Downloaded rustls v0.23.28
[INFO] [stderr]   Downloaded ff v0.12.1
[INFO] [stderr]   Downloaded prettyplease v0.2.35
[INFO] [stderr]   Downloaded aws-lc-rs v1.13.1
[INFO] [stderr]   Downloaded plotters v0.3.7
[INFO] [stderr]   Downloaded aws-smithy-xml v0.60.10
[INFO] [stderr]   Downloaded aws-smithy-async v1.2.5
[INFO] [stderr]   Downloaded ciborium v0.2.2
[INFO] [stderr]   Downloaded multihash-derive v0.8.1
[INFO] [stderr]   Downloaded multiaddr v0.17.1
[INFO] [stderr]   Downloaded proptest v1.7.0
[INFO] [stderr]   Downloaded secp256k1-sys v0.11.0
[INFO] [stderr]   Downloaded color-eyre v0.6.5
[INFO] [stderr]   Downloaded ecdsa v0.14.8
[INFO] [stderr]   Downloaded group v0.12.1
[INFO] [stderr]   Downloaded aws-smithy-checksums v0.63.3
[INFO] [stderr]   Downloaded aws-smithy-http v0.62.1
[INFO] [stderr]   Downloaded aws-types v1.3.7
[INFO] [stderr]   Downloaded criterion-plot v0.5.0
[INFO] [stderr]   Downloaded oorandom v11.1.5
[INFO] [stderr]   Downloaded plotters-svg v0.3.7
[INFO] [stderr]   Downloaded criterion v0.6.0
[INFO] [stderr]   Downloaded generic-array v1.2.0
[INFO] [stderr]   Downloaded common-multipart-rfc7578 v0.6.0
[INFO] [stderr]   Downloaded multihash v0.17.0
[INFO] [stderr]   Downloaded wait-timeout v0.2.1
[INFO] [stderr]   Downloaded spki v0.6.0
[INFO] [stderr]   Downloaded elliptic-curve v0.12.3
[INFO] [stderr]   Downloaded tokio-rustls v0.26.2
[INFO] [stderr]   Downloaded rustls-native-certs v0.8.1
[INFO] [stderr]   Downloaded aws-credential-types v1.2.3
[INFO] [stderr]   Downloaded outref v0.5.2
[INFO] [stderr]   Downloaded cast v0.3.0
[INFO] [stderr]   Downloaded base-x v0.2.11
[INFO] [stderr]   Downloaded data-encoding-macro v0.1.18
[INFO] [stderr]   Downloaded secp256k1 v0.31.1
[INFO] [stderr]   Downloaded p256 v0.11.1
[INFO] [stderr]   Downloaded crc-fast v1.3.0
[INFO] [stderr]   Downloaded security-framework v3.2.0
[INFO] [stderr]   Downloaded aws-smithy-runtime-api v1.8.1
[INFO] [stderr]   Downloaded base58 v0.2.0
[INFO] [stderr]   Downloaded bincode_derive v2.0.1
[INFO] [stderr]   Downloaded ciborium-ll v0.2.2
[INFO] [stderr]   Downloaded base64ct v1.8.0
[INFO] [stderr]   Downloaded hyper-rustls v0.27.7
[INFO] [stderr]   Downloaded virtue v0.0.18
[INFO] [stderr]   Downloaded tracing-error v0.2.1
[INFO] [stderr]   Downloaded plotters-backend v0.3.7
[INFO] [stderr]   Downloaded core2 v0.4.0
[INFO] [stderr]   Downloaded aws-smithy-eventstream v0.60.9
[INFO] [stderr]   Downloaded aws-smithy-observability v0.1.3
[INFO] [stderr]   Downloaded hyper-multipart-rfc7578 v0.8.0
[INFO] [stderr]   Downloaded unsigned-varint v0.7.2
[INFO] [stderr]   Downloaded ripemd v0.1.3
[INFO] [stderr]   Downloaded aws-sdk-s3 v1.93.0
[INFO] [stderr]   Downloaded aws-lc-sys v0.29.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 677fe09befa2445e1289ff600f3fdd7c8ba78dc5e56a8e1c074cb4f9670071dd
[INFO] running `Command { std: "docker" "start" "-a" "677fe09befa2445e1289ff600f3fdd7c8ba78dc5e56a8e1c074cb4f9670071dd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "677fe09befa2445e1289ff600f3fdd7c8ba78dc5e56a8e1c074cb4f9670071dd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "677fe09befa2445e1289ff600f3fdd7c8ba78dc5e56a8e1c074cb4f9670071dd", kill_on_drop: false }`
[INFO] [stdout] 677fe09befa2445e1289ff600f3fdd7c8ba78dc5e56a8e1c074cb4f9670071dd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 30d9dceb7fe2c68a8cffa2127ab8a615f48b7dc9d86b649a9d639cb4225dccfa
[INFO] running `Command { std: "docker" "start" "-a" "30d9dceb7fe2c68a8cffa2127ab8a615f48b7dc9d86b649a9d639cb4225dccfa", kill_on_drop: false }`
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling tracing-core v0.1.34
[INFO] [stderr]    Compiling regex-syntax v0.6.29
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling object v0.36.7
[INFO] [stderr]    Compiling owo-colors v4.2.2
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling secp256k1-sys v0.11.0
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling gimli v0.31.1
[INFO] [stderr]    Compiling color-spantrace v0.3.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling block-padding v0.3.3
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling regex-automata v0.1.10
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling matchers v0.1.0
[INFO] [stderr]    Compiling addr2line v0.24.2
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling rustc-demangle v0.1.25
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling base64ct v1.8.0
[INFO] [stderr]    Compiling virtue v0.0.18
[INFO] [stderr]    Compiling password-hash v0.5.0
[INFO] [stderr]    Compiling eyre v0.6.12
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling bincode_derive v2.0.1
[INFO] [stderr]    Compiling pbkdf2 v0.12.2
[INFO] [stderr]    Compiling salsa20 v0.10.2
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling signal-hook-registry v1.4.5
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling iana-time-zone v0.1.63
[INFO] [stderr]    Compiling unty v0.0.4
[INFO] [stderr]    Compiling keccak v0.1.5
[INFO] [stderr]    Compiling bincode v2.0.1
[INFO] [stderr]    Compiling sha3 v0.10.8
[INFO] [stderr]    Compiling scrypt v0.11.0
[INFO] [stderr]    Compiling secp256k1 v0.31.1
[INFO] [stderr]    Compiling rand v0.9.1
[INFO] [stderr]    Compiling cbc v0.1.2
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling ripemd v0.1.3
[INFO] [stderr]    Compiling generic-array v1.2.0
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling base58 v0.2.0
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]    Compiling backtrace v0.3.75
[INFO] [stderr]    Compiling tokio v1.45.1
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling zeroize v1.8.1
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling uuid v1.17.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling tracing-subscriber v0.3.19
[INFO] [stderr]    Compiling tracing-error v0.2.1
[INFO] [stderr]    Compiling color-eyre v0.6.5
[INFO] [stderr]    Compiling r-squared-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/chain/chain_validation.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Cursor`
[INFO] [stdout]  --> src/serializer/fast_parser.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::io::{Read, Cursor};
[INFO] [stdout]   |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/ecc/address.rs:264:29
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let mut rng = rand::thread_rng();
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]  --> src/ecc/brain_key.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rand::{Rng, thread_rng};
[INFO] [stdout]   |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/ecc/brain_key.rs:45:23
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let mut rng = thread_rng();
[INFO] [stdout]    |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]  --> src/ecc/key_utils.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rand::{Rng, thread_rng};
[INFO] [stdout]   |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/ecc/key_utils.rs:135:23
[INFO] [stdout]     |
[INFO] [stdout] 135 |         let mut rng = thread_rng();
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/ecc/key_utils.rs:161:23
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let mut rng = thread_rng();
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]  --> src/ecc/aes.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rand::{Rng, thread_rng};
[INFO] [stdout]   |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/ecc/aes.rs:32:31
[INFO] [stdout]    |
[INFO] [stdout] 32 |                 let mut rng = thread_rng();
[INFO] [stdout]    |                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/ecc/aes.rs:175:31
[INFO] [stdout]     |
[INFO] [stdout] 175 |                 let mut rng = thread_rng();
[INFO] [stdout]     |                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/ecc/aes.rs:282:23
[INFO] [stdout]     |
[INFO] [stdout] 282 |         let mut rng = thread_rng();
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/ecc/aes.rs:288:23
[INFO] [stdout]     |
[INFO] [stdout] 288 |         let mut rng = thread_rng();
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/chain/account_login.rs:434:29
[INFO] [stdout]     |
[INFO] [stdout] 434 |         let mut rng = rand::thread_rng();
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/chain/account_login.rs:442:29
[INFO] [stdout]     |
[INFO] [stdout] 442 |         let mut rng = rand::thread_rng();
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/chain/account_login.rs:450:29
[INFO] [stdout]     |
[INFO] [stdout] 450 |         let mut rng = rand::thread_rng();
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `api_url`
[INFO] [stdout]    --> src/chain/transaction_helper.rs:360:9
[INFO] [stdout]     |
[INFO] [stdout] 360 |         api_url: &str,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_api_url`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `secp256k1::SecretKey::from_slice`: Use `from_byte_array` instead.
[INFO] [stdout]   --> src/ecc/private_key.rs:38:30
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let key = SecretKey::from_slice(bytes)
[INFO] [stdout]    |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `secp256k1::Message::from_slice`: use from_digest instead
[INFO] [stdout]    --> src/ecc/private_key.rs:137:32
[INFO] [stdout]     |
[INFO] [stdout] 137 |         let message = Message::from_slice(message_hash)
[INFO] [stdout]     |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `secp256k1::SecretKey::from_slice`: Use `from_byte_array` instead.
[INFO] [stdout]    --> src/ecc/private_key.rs:189:42
[INFO] [stdout]     |
[INFO] [stdout] 189 |         if let Ok(zero_key) = SecretKey::from_slice(&zero_bytes) {
[INFO] [stdout]     |                                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `secp256k1::Message::from_slice`: use from_digest instead
[INFO] [stdout]    --> src/ecc/public_key.rs:130:32
[INFO] [stdout]     |
[INFO] [stdout] 130 |         let message = Message::from_slice(message_hash)
[INFO] [stdout]     |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/ecc/address.rs:265:34
[INFO] [stdout]     |
[INFO] [stdout] 265 |         let hash: [u8; 20] = rng.gen();
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/ecc/brain_key.rs:49:29
[INFO] [stdout]    |
[INFO] [stdout] 49 |             let index = rng.gen_range(0..dictionary.len());
[INFO] [stdout]    |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/ecc/key_utils.rs:136:33
[INFO] [stdout]     |
[INFO] [stdout] 136 |         (0..length).map(|_| rng.gen()).collect()
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/ecc/key_utils.rs:170:43
[INFO] [stdout]     |
[INFO] [stdout] 170 |                 let random_byte: u8 = rng.gen();
[INFO] [stdout]     |                                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]   --> src/ecc/aes.rs:33:21
[INFO] [stdout]    |
[INFO] [stdout] 33 |                 rng.gen()
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/ecc/aes.rs:176:37
[INFO] [stdout]     |
[INFO] [stdout] 176 |                 (0..16).map(|_| rng.gen()).collect()
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `secp256k1::SecretKey::from_slice`: Use `from_byte_array` instead.
[INFO] [stdout]    --> src/ecc/aes.rs:222:37
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let secret_key = SecretKey::from_slice(private_key)
[INFO] [stdout]     |                                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/ecc/aes.rs:283:13
[INFO] [stdout]     |
[INFO] [stdout] 283 |         rng.gen()
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/ecc/aes.rs:289:13
[INFO] [stdout]     |
[INFO] [stdout] 289 |         rng.gen()
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/chain/account_login.rs:435:42
[INFO] [stdout]     |
[INFO] [stdout] 435 |         let random_bytes: [u8; 16] = rng.gen();
[INFO] [stdout]     |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/chain/account_login.rs:443:42
[INFO] [stdout]     |
[INFO] [stdout] 443 |         let random_bytes: [u8; 32] = rng.gen();
[INFO] [stdout]     |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/chain/account_login.rs:451:42
[INFO] [stdout]     |
[INFO] [stdout] 451 |         let random_bytes: [u8; 32] = rng.gen();
[INFO] [stdout]     |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Digest`
[INFO] [stdout]  --> src/ecc/public_key.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ripemd::{Ripemd160, Digest as RipemdDigest};
[INFO] [stdout]   |                         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ripemd::Digest`
[INFO] [stdout]  --> src/ecc/address.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ripemd::Digest as RipemdDigest;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Digest`
[INFO] [stdout]  --> src/ecc/brain_key.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 | use sha2::{Sha256, Digest};
[INFO] [stdout]   |                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Digest`
[INFO] [stdout]  --> src/ecc/hash.rs:6:25
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ripemd::{Ripemd160, Digest as RipemdDigest};
[INFO] [stdout]   |                         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncReadExt`
[INFO] [stdout]   --> src/storage/storage_local.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> src/chain/number_utils.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StorageApi`
[INFO] [stdout]   --> src/storage/storage_local.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     StorageApi, StorageApiSync, StorageConfig, StorageMetadata, StorageBackend,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncWriteExt`
[INFO] [stdout]   --> src/storage/storage_local.rs:23:31
[INFO] [stdout]    |
[INFO] [stdout] 23 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]    |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_compressed`
[INFO] [stdout]   --> src/ecc/private_key.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let is_compressed = if decoded.len() == 38 {
[INFO] [stdout]    |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_compressed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `zero_key`
[INFO] [stdout]    --> src/ecc/private_key.rs:189:19
[INFO] [stdout]     |
[INFO] [stdout] 189 |         if let Ok(zero_key) = SecretKey::from_slice(&zero_bytes) {
[INFO] [stdout]     |                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_zero_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]    --> src/ecc/mod.rs:178:31
[INFO] [stdout]     |
[INFO] [stdout] 178 |     pub fn recover_public_key(message: &[u8], signature: &Signature) -> EccResult<PublicKey> {
[INFO] [stdout]     |                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `signing_data`
[INFO] [stdout]    --> src/chain/transaction_helper.rs:148:13
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let signing_data = Self::serialize_for_signing(transaction, chain_id)?;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_signing_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `authority`
[INFO] [stdout]    --> src/chain/transaction_helper.rs:439:25
[INFO] [stdout]     |
[INFO] [stdout] 439 |             if let Some(authority) = authorities.get(&account_id) {
[INFO] [stdout]     |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_authority`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chain_properties`
[INFO] [stdout]   --> src/chain/chain_validation.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 86 |         chain_properties: &ChainProperties,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chain_properties`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sequence`
[INFO] [stdout]    --> src/chain/account_login.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |         sequence: u32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 112 |         _sequence: u32,
[INFO] [stdout]     |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `DEFAULT_MAX_RETRIES`
[INFO] [stdout]     |
[INFO] [stdout] 112 -         sequence: u32,
[INFO] [stdout] 112 +         storage::constants::DEFAULT_MAX_RETRIES: u32,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `credentials`
[INFO] [stdout]    --> src/chain/mod.rs:156:29
[INFO] [stdout]     |
[INFO] [stdout] 156 |     pub fn login(&mut self, credentials: &LoginCredentials) -> ChainResult<LoginChallenge> {
[INFO] [stdout]     |                             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_credentials`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/serializer/serializer_operation.rs:574:36
[INFO] [stdout]     |
[INFO] [stdout] 574 |     fn deserialize_account_options(data: &[u8], offset: &mut usize) -> SerializerResult<crate::chain::AccountOptions> {
[INFO] [stdout]     |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/serializer/serializer_operation.rs:589:34
[INFO] [stdout]     |
[INFO] [stdout] 589 |     fn deserialize_asset_options(data: &[u8], offset: &mut usize) -> SerializerResult<crate::chain::AssetOptions> {
[INFO] [stdout]     |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fill_or_kill`
[INFO] [stdout]   --> src/serializer/serializer_validation.rs:96:95
[INFO] [stdout]    |
[INFO] [stdout] 96 |             Operation::LimitOrderCreate { seller, amount_to_sell, min_to_receive, expiration, fill_or_kill, fee, extensions } => {
[INFO] [stdout]    |                                                                                               ^^^^^^^^^^^^ help: try ignoring the field: `fill_or_kill: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:117:100
[INFO] [stdout]     |
[INFO] [stdout] 117 |             Operation::AccountCreate { registrar, referrer, referrer_percent, name, owner, active, options, fee, extensions } => {
[INFO] [stdout]     |                                                                                                    ^^^^^^^ help: try ignoring the field: `options: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_options`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:134:64
[INFO] [stdout]     |
[INFO] [stdout] 134 |             Operation::AccountUpdate { account, owner, active, new_options, fee, extensions } => {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^ help: try ignoring the field: `new_options: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `common_options`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:148:65
[INFO] [stdout]     |
[INFO] [stdout] 148 |             Operation::AssetCreate { issuer, symbol, precision, common_options, bitasset_opts, is_prediction_market, fee, extensions } => {
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^^ help: try ignoring the field: `common_options: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bitasset_opts`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:148:81
[INFO] [stdout]     |
[INFO] [stdout] 148 |             Operation::AssetCreate { issuer, symbol, precision, common_options, bitasset_opts, is_prediction_market, fee, extensions } => {
[INFO] [stdout]     |                                                                                 ^^^^^^^^^^^^^ help: try ignoring the field: `bitasset_opts: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_prediction_market`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:148:96
[INFO] [stdout]     |
[INFO] [stdout] 148 |             Operation::AssetCreate { issuer, symbol, precision, common_options, bitasset_opts, is_prediction_market, fee, extensions } => {
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^^^^^^^^^^ help: try ignoring the field: `is_prediction_market: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_options`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:162:63
[INFO] [stdout]     |
[INFO] [stdout] 162 |             Operation::AssetUpdate { issuer, asset_to_update, new_options, fee, extensions } => {
[INFO] [stdout]     |                                                               ^^^^^^^^^^^ help: try ignoring the field: `new_options: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:175:33
[INFO] [stdout]     |
[INFO] [stdout] 175 |             Operation::Custom { id, payer, required_auths, data, fee, extensions } => {
[INFO] [stdout]     |                                 ^^ help: try ignoring the field: `id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:547:38
[INFO] [stdout]     |
[INFO] [stdout] 547 |     pub fn comprehensive_validate<T>(data: &T, type_name: &str) -> SerializerResult<()>
[INFO] [stdout]     |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `inner` is never used
[INFO] [stdout]    --> src/ecc/private_key.rs:172:19
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl PrivateKey {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub(crate) fn inner(&self) -> &SecretKey {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `pkcs7_pad` and `pkcs7_unpad` are never used
[INFO] [stdout]    --> src/ecc/aes.rs:240:8
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl Aes {
[INFO] [stdout]     | -------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 240 |     fn pkcs7_pad(data: &[u8], block_size: usize) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     fn pkcs7_unpad(data: &[u8]) -> EccResult<Vec<u8>> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `buffer_size` is never read
[INFO] [stdout]    --> src/serializer/fast_parser.rs:431:5
[INFO] [stdout]     |
[INFO] [stdout] 428 | pub struct StreamingParser<R: Read> {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 431 |     buffer_size: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `serialize_object_id_vec` and `deserialize_object_id_vec` are never used
[INFO] [stdout]    --> src/serializer/serializer_operation.rs:470:8
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl SerializerOperation {
[INFO] [stdout]     | ------------------------ associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 470 |     fn serialize_object_id_vec(value: &[ObjectId], buffer: &mut Vec<u8>) -> SerializerResult<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 699 |     fn deserialize_object_id_vec(data: &[u8], offset: &mut usize) -> SerializerResult<Vec<ObjectId>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `buffer_capacity` is never read
[INFO] [stdout]   --> src/serializer/serializer.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Serializer {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 19 |     /// Buffer capacity for serialization operations
[INFO] [stdout] 20 |     buffer_capacity: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bytes_to_hex` is never used
[INFO] [stdout]  --> src/utils.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn bytes_to_hex(bytes: &[u8]) -> String {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hex_to_bytes` is never used
[INFO] [stdout]  --> src/utils.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn hex_to_bytes(hex: &str) -> Result<Vec<u8>, hex::FromHexError> {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_key_length` is never used
[INFO] [stdout]   --> src/utils.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn validate_key_length(key: &[u8], expected_len: usize) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:29:20
[INFO] [stdout]    |
[INFO] [stdout] 29 |     InvalidInput { message: String },
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:33:21
[INFO] [stdout]    |
[INFO] [stdout] 33 |     Configuration { message: String },
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |     Other { message: String },
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:53:25
[INFO] [stdout]    |
[INFO] [stdout] 53 |     InvalidPrivateKey { reason: String },
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:57:24
[INFO] [stdout]    |
[INFO] [stdout] 57 |     InvalidPublicKey { reason: String },
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:61:24
[INFO] [stdout]    |
[INFO] [stdout] 61 |     InvalidSignature { reason: String },
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:65:22
[INFO] [stdout]    |
[INFO] [stdout] 65 |     InvalidAddress { reason: String },
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:69:29
[INFO] [stdout]    |
[INFO] [stdout] 69 |     CryptoOperationFailed { operation: String },
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:73:27
[INFO] [stdout]    |
[INFO] [stdout] 73 |     KeyDerivationFailed { reason: String },
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:77:23
[INFO] [stdout]    |
[INFO] [stdout] 77 |     EncryptionError { reason: String },
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:85:26
[INFO] [stdout]    |
[INFO] [stdout] 85 |     InvalidTransaction { reason: String },
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:89:30
[INFO] [stdout]    |
[INFO] [stdout] 89 |     TransactionBuildFailed { reason: String },
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:93:20
[INFO] [stdout]    |
[INFO] [stdout] 93 |     InvalidBlock { reason: String },
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:97:23
[INFO] [stdout]    |
[INFO] [stdout] 97 |     ChainStateError { reason: String },
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:101:23
[INFO] [stdout]     |
[INFO] [stdout] 101 |     InvalidObjectId { id: String },
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:105:22
[INFO] [stdout]     |
[INFO] [stdout] 105 |     ObjectNotFound { id: String },
[INFO] [stdout]     |                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:109:23
[INFO] [stdout]     |
[INFO] [stdout] 109 |     ValidationError { field: String, reason: String },
[INFO] [stdout]     |                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:109:38
[INFO] [stdout]     |
[INFO] [stdout] 109 |     ValidationError { field: String, reason: String },
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:113:29
[INFO] [stdout]     |
[INFO] [stdout] 113 |     CryptoOperationFailed { operation: String },
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:130:27
[INFO] [stdout]     |
[INFO] [stdout] 130 |     SerializationFailed { reason: String },
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:134:29
[INFO] [stdout]     |
[INFO] [stdout] 134 |     DeserializationFailed { reason: String },
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:138:21
[INFO] [stdout]     |
[INFO] [stdout] 138 |     InvalidFormat { expected: String, actual: String },
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:138:39
[INFO] [stdout]     |
[INFO] [stdout] 138 |     InvalidFormat { expected: String, actual: String },
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:142:19
[INFO] [stdout]     |
[INFO] [stdout] 142 |     BufferError { reason: String },
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:146:27
[INFO] [stdout]     |
[INFO] [stdout] 146 |     TypeConversionError { from: String, to: String },
[INFO] [stdout]     |                           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:146:41
[INFO] [stdout]     |
[INFO] [stdout] 146 |     TypeConversionError { from: String, to: String },
[INFO] [stdout]     |                                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:154:27
[INFO] [stdout]     |
[INFO] [stdout] 154 |     BackendNotAvailable { backend: String },
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:158:23
[INFO] [stdout]     |
[INFO] [stdout] 158 |     OperationFailed { operation: String, reason: String },
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:158:42
[INFO] [stdout]     |
[INFO] [stdout] 158 |     OperationFailed { operation: String, reason: String },
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:162:28
[INFO] [stdout]     |
[INFO] [stdout] 162 |     AuthenticationFailed { reason: String },
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:166:24
[INFO] [stdout]     |
[INFO] [stdout] 166 |     PermissionDenied { resource: String },
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:170:24
[INFO] [stdout]     |
[INFO] [stdout] 170 |     ResourceNotFound { resource: String },
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:178:23
[INFO] [stdout]     |
[INFO] [stdout] 178 |     ConnectionError { reason: String },
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:190:25
[INFO] [stdout]     |
[INFO] [stdout] 190 |     ConnectionRefused { address: String },
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:194:27
[INFO] [stdout]     |
[INFO] [stdout] 194 |     DnsResolutionFailed { hostname: String },
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:198:18
[INFO] [stdout]     |
[INFO] [stdout] 198 |     InvalidUrl { url: String },
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:202:17
[INFO] [stdout]     |
[INFO] [stdout] 202 |     HttpError { status: u16, message: String },
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:202:30
[INFO] [stdout]     |
[INFO] [stdout] 202 |     HttpError { status: u16, message: String },
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ecc/address.rs:27:14
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Legacy { version: u8 },
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/storage/mod.rs:358:9
[INFO] [stdout]     |
[INFO] [stdout] 358 |         pub fn new(inner: S, max_cache_size: usize) -> Self {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 33s
[INFO] running `Command { std: "docker" "inspect" "30d9dceb7fe2c68a8cffa2127ab8a615f48b7dc9d86b649a9d639cb4225dccfa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "30d9dceb7fe2c68a8cffa2127ab8a615f48b7dc9d86b649a9d639cb4225dccfa", kill_on_drop: false }`
[INFO] [stdout] 30d9dceb7fe2c68a8cffa2127ab8a615f48b7dc9d86b649a9d639cb4225dccfa
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 59b8af252618e8820600bbb0b2b2261770da1242368067d1179c4b7033b74618
[INFO] running `Command { std: "docker" "start" "-a" "59b8af252618e8820600bbb0b2b2261770da1242368067d1179c4b7033b74618", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling rustix v1.0.7
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]    Compiling linux-raw-sys v0.9.4
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling tokio v1.45.1
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling half v2.6.0
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling clap_builder v4.5.40
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling tempfile v3.20.0
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling rusty-fork v0.3.0
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling criterion-plot v0.5.0
[INFO] [stderr]    Compiling clap v4.5.40
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling uuid v1.17.0
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling tracing-subscriber v0.3.19
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling tracing-error v0.2.1
[INFO] [stderr]    Compiling color-spantrace v0.3.0
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling color-eyre v0.6.5
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling proptest v1.7.0
[INFO] [stderr]    Compiling tokio-test v0.4.4
[INFO] [stderr]    Compiling criterion v0.6.0
[INFO] [stderr]    Compiling r-squared-rust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/chain/chain_validation.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Cursor`
[INFO] [stdout]  --> src/serializer/fast_parser.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::io::{Read, Cursor};
[INFO] [stdout]   |                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/ecc/address.rs:264:29
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let mut rng = rand::thread_rng();
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]  --> src/ecc/brain_key.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rand::{Rng, thread_rng};
[INFO] [stdout]   |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/ecc/brain_key.rs:45:23
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let mut rng = thread_rng();
[INFO] [stdout]    |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]  --> src/ecc/key_utils.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rand::{Rng, thread_rng};
[INFO] [stdout]   |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/ecc/key_utils.rs:135:23
[INFO] [stdout]     |
[INFO] [stdout] 135 |         let mut rng = thread_rng();
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/ecc/key_utils.rs:161:23
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let mut rng = thread_rng();
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]  --> src/ecc/aes.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rand::{Rng, thread_rng};
[INFO] [stdout]   |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/ecc/aes.rs:32:31
[INFO] [stdout]    |
[INFO] [stdout] 32 |                 let mut rng = thread_rng();
[INFO] [stdout]    |                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/ecc/aes.rs:175:31
[INFO] [stdout]     |
[INFO] [stdout] 175 |                 let mut rng = thread_rng();
[INFO] [stdout]     |                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/ecc/aes.rs:282:23
[INFO] [stdout]     |
[INFO] [stdout] 282 |         let mut rng = thread_rng();
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/ecc/aes.rs:288:23
[INFO] [stdout]     |
[INFO] [stdout] 288 |         let mut rng = thread_rng();
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/chain/account_login.rs:434:29
[INFO] [stdout]     |
[INFO] [stdout] 434 |         let mut rng = rand::thread_rng();
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/chain/account_login.rs:442:29
[INFO] [stdout]     |
[INFO] [stdout] 442 |         let mut rng = rand::thread_rng();
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/chain/account_login.rs:450:29
[INFO] [stdout]     |
[INFO] [stdout] 450 |         let mut rng = rand::thread_rng();
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `api_url`
[INFO] [stdout]    --> src/chain/transaction_helper.rs:360:9
[INFO] [stdout]     |
[INFO] [stdout] 360 |         api_url: &str,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_api_url`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `secp256k1::SecretKey::from_slice`: Use `from_byte_array` instead.
[INFO] [stdout]   --> src/ecc/private_key.rs:38:30
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let key = SecretKey::from_slice(bytes)
[INFO] [stdout]    |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `secp256k1::Message::from_slice`: use from_digest instead
[INFO] [stdout]    --> src/ecc/private_key.rs:137:32
[INFO] [stdout]     |
[INFO] [stdout] 137 |         let message = Message::from_slice(message_hash)
[INFO] [stdout]     |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `secp256k1::SecretKey::from_slice`: Use `from_byte_array` instead.
[INFO] [stdout]    --> src/ecc/private_key.rs:189:42
[INFO] [stdout]     |
[INFO] [stdout] 189 |         if let Ok(zero_key) = SecretKey::from_slice(&zero_bytes) {
[INFO] [stdout]     |                                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `secp256k1::Message::from_slice`: use from_digest instead
[INFO] [stdout]    --> src/ecc/public_key.rs:130:32
[INFO] [stdout]     |
[INFO] [stdout] 130 |         let message = Message::from_slice(message_hash)
[INFO] [stdout]     |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/ecc/address.rs:265:34
[INFO] [stdout]     |
[INFO] [stdout] 265 |         let hash: [u8; 20] = rng.gen();
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/ecc/brain_key.rs:49:29
[INFO] [stdout]    |
[INFO] [stdout] 49 |             let index = rng.gen_range(0..dictionary.len());
[INFO] [stdout]    |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/ecc/key_utils.rs:136:33
[INFO] [stdout]     |
[INFO] [stdout] 136 |         (0..length).map(|_| rng.gen()).collect()
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/ecc/key_utils.rs:170:43
[INFO] [stdout]     |
[INFO] [stdout] 170 |                 let random_byte: u8 = rng.gen();
[INFO] [stdout]     |                                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]   --> src/ecc/aes.rs:33:21
[INFO] [stdout]    |
[INFO] [stdout] 33 |                 rng.gen()
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/ecc/aes.rs:176:37
[INFO] [stdout]     |
[INFO] [stdout] 176 |                 (0..16).map(|_| rng.gen()).collect()
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `secp256k1::SecretKey::from_slice`: Use `from_byte_array` instead.
[INFO] [stdout]    --> src/ecc/aes.rs:222:37
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let secret_key = SecretKey::from_slice(private_key)
[INFO] [stdout]     |                                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/ecc/aes.rs:283:13
[INFO] [stdout]     |
[INFO] [stdout] 283 |         rng.gen()
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/ecc/aes.rs:289:13
[INFO] [stdout]     |
[INFO] [stdout] 289 |         rng.gen()
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/chain/account_login.rs:435:42
[INFO] [stdout]     |
[INFO] [stdout] 435 |         let random_bytes: [u8; 16] = rng.gen();
[INFO] [stdout]     |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/chain/account_login.rs:443:42
[INFO] [stdout]     |
[INFO] [stdout] 443 |         let random_bytes: [u8; 32] = rng.gen();
[INFO] [stdout]     |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/chain/account_login.rs:451:42
[INFO] [stdout]     |
[INFO] [stdout] 451 |         let random_bytes: [u8; 32] = rng.gen();
[INFO] [stdout]     |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Digest`
[INFO] [stdout]  --> src/ecc/public_key.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ripemd::{Ripemd160, Digest as RipemdDigest};
[INFO] [stdout]   |                         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ripemd::Digest`
[INFO] [stdout]  --> src/ecc/address.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ripemd::Digest as RipemdDigest;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Digest`
[INFO] [stdout]  --> src/ecc/brain_key.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 | use sha2::{Sha256, Digest};
[INFO] [stdout]   |                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Digest`
[INFO] [stdout]  --> src/ecc/hash.rs:6:25
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ripemd::{Ripemd160, Digest as RipemdDigest};
[INFO] [stdout]   |                         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncReadExt`
[INFO] [stdout]   --> src/storage/storage_local.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> src/chain/number_utils.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StorageApi`
[INFO] [stdout]   --> src/storage/storage_local.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     StorageApi, StorageApiSync, StorageConfig, StorageMetadata, StorageBackend,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncWriteExt`
[INFO] [stdout]   --> src/storage/storage_local.rs:23:31
[INFO] [stdout]    |
[INFO] [stdout] 23 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]    |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_compressed`
[INFO] [stdout]   --> src/ecc/private_key.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let is_compressed = if decoded.len() == 38 {
[INFO] [stdout]    |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_compressed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `zero_key`
[INFO] [stdout]    --> src/ecc/private_key.rs:189:19
[INFO] [stdout]     |
[INFO] [stdout] 189 |         if let Ok(zero_key) = SecretKey::from_slice(&zero_bytes) {
[INFO] [stdout]     |                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_zero_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]    --> src/ecc/mod.rs:178:31
[INFO] [stdout]     |
[INFO] [stdout] 178 |     pub fn recover_public_key(message: &[u8], signature: &Signature) -> EccResult<PublicKey> {
[INFO] [stdout]     |                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `signing_data`
[INFO] [stdout]    --> src/chain/transaction_helper.rs:148:13
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let signing_data = Self::serialize_for_signing(transaction, chain_id)?;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_signing_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `authority`
[INFO] [stdout]    --> src/chain/transaction_helper.rs:439:25
[INFO] [stdout]     |
[INFO] [stdout] 439 |             if let Some(authority) = authorities.get(&account_id) {
[INFO] [stdout]     |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_authority`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chain_properties`
[INFO] [stdout]   --> src/chain/chain_validation.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 86 |         chain_properties: &ChainProperties,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chain_properties`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sequence`
[INFO] [stdout]    --> src/chain/account_login.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |         sequence: u32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 112 |         _sequence: u32,
[INFO] [stdout]     |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `DEFAULT_MAX_RETRIES`
[INFO] [stdout]     |
[INFO] [stdout] 112 -         sequence: u32,
[INFO] [stdout] 112 +         storage::constants::DEFAULT_MAX_RETRIES: u32,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `credentials`
[INFO] [stdout]    --> src/chain/mod.rs:156:29
[INFO] [stdout]     |
[INFO] [stdout] 156 |     pub fn login(&mut self, credentials: &LoginCredentials) -> ChainResult<LoginChallenge> {
[INFO] [stdout]     |                             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_credentials`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/serializer/serializer_operation.rs:574:36
[INFO] [stdout]     |
[INFO] [stdout] 574 |     fn deserialize_account_options(data: &[u8], offset: &mut usize) -> SerializerResult<crate::chain::AccountOptions> {
[INFO] [stdout]     |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/serializer/serializer_operation.rs:589:34
[INFO] [stdout]     |
[INFO] [stdout] 589 |     fn deserialize_asset_options(data: &[u8], offset: &mut usize) -> SerializerResult<crate::chain::AssetOptions> {
[INFO] [stdout]     |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fill_or_kill`
[INFO] [stdout]   --> src/serializer/serializer_validation.rs:96:95
[INFO] [stdout]    |
[INFO] [stdout] 96 |             Operation::LimitOrderCreate { seller, amount_to_sell, min_to_receive, expiration, fill_or_kill, fee, extensions } => {
[INFO] [stdout]    |                                                                                               ^^^^^^^^^^^^ help: try ignoring the field: `fill_or_kill: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:117:100
[INFO] [stdout]     |
[INFO] [stdout] 117 |             Operation::AccountCreate { registrar, referrer, referrer_percent, name, owner, active, options, fee, extensions } => {
[INFO] [stdout]     |                                                                                                    ^^^^^^^ help: try ignoring the field: `options: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_options`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:134:64
[INFO] [stdout]     |
[INFO] [stdout] 134 |             Operation::AccountUpdate { account, owner, active, new_options, fee, extensions } => {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^ help: try ignoring the field: `new_options: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `common_options`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:148:65
[INFO] [stdout]     |
[INFO] [stdout] 148 |             Operation::AssetCreate { issuer, symbol, precision, common_options, bitasset_opts, is_prediction_market, fee, extensions } => {
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^^ help: try ignoring the field: `common_options: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bitasset_opts`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:148:81
[INFO] [stdout]     |
[INFO] [stdout] 148 |             Operation::AssetCreate { issuer, symbol, precision, common_options, bitasset_opts, is_prediction_market, fee, extensions } => {
[INFO] [stdout]     |                                                                                 ^^^^^^^^^^^^^ help: try ignoring the field: `bitasset_opts: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_prediction_market`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:148:96
[INFO] [stdout]     |
[INFO] [stdout] 148 |             Operation::AssetCreate { issuer, symbol, precision, common_options, bitasset_opts, is_prediction_market, fee, extensions } => {
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^^^^^^^^^^ help: try ignoring the field: `is_prediction_market: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_options`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:162:63
[INFO] [stdout]     |
[INFO] [stdout] 162 |             Operation::AssetUpdate { issuer, asset_to_update, new_options, fee, extensions } => {
[INFO] [stdout]     |                                                               ^^^^^^^^^^^ help: try ignoring the field: `new_options: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:175:33
[INFO] [stdout]     |
[INFO] [stdout] 175 |             Operation::Custom { id, payer, required_auths, data, fee, extensions } => {
[INFO] [stdout]     |                                 ^^ help: try ignoring the field: `id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:547:38
[INFO] [stdout]     |
[INFO] [stdout] 547 |     pub fn comprehensive_validate<T>(data: &T, type_name: &str) -> SerializerResult<()>
[INFO] [stdout]     |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `inner` is never used
[INFO] [stdout]    --> src/ecc/private_key.rs:172:19
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl PrivateKey {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub(crate) fn inner(&self) -> &SecretKey {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `pkcs7_pad` and `pkcs7_unpad` are never used
[INFO] [stdout]    --> src/ecc/aes.rs:240:8
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl Aes {
[INFO] [stdout]     | -------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 240 |     fn pkcs7_pad(data: &[u8], block_size: usize) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     fn pkcs7_unpad(data: &[u8]) -> EccResult<Vec<u8>> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `buffer_size` is never read
[INFO] [stdout]    --> src/serializer/fast_parser.rs:431:5
[INFO] [stdout]     |
[INFO] [stdout] 428 | pub struct StreamingParser<R: Read> {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 431 |     buffer_size: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `serialize_object_id_vec` and `deserialize_object_id_vec` are never used
[INFO] [stdout]    --> src/serializer/serializer_operation.rs:470:8
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl SerializerOperation {
[INFO] [stdout]     | ------------------------ associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 470 |     fn serialize_object_id_vec(value: &[ObjectId], buffer: &mut Vec<u8>) -> SerializerResult<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 699 |     fn deserialize_object_id_vec(data: &[u8], offset: &mut usize) -> SerializerResult<Vec<ObjectId>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `buffer_capacity` is never read
[INFO] [stdout]   --> src/serializer/serializer.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Serializer {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 19 |     /// Buffer capacity for serialization operations
[INFO] [stdout] 20 |     buffer_capacity: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bytes_to_hex` is never used
[INFO] [stdout]  --> src/utils.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn bytes_to_hex(bytes: &[u8]) -> String {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hex_to_bytes` is never used
[INFO] [stdout]  --> src/utils.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn hex_to_bytes(hex: &str) -> Result<Vec<u8>, hex::FromHexError> {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_key_length` is never used
[INFO] [stdout]   --> src/utils.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn validate_key_length(key: &[u8], expected_len: usize) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:29:20
[INFO] [stdout]    |
[INFO] [stdout] 29 |     InvalidInput { message: String },
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:33:21
[INFO] [stdout]    |
[INFO] [stdout] 33 |     Configuration { message: String },
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |     Other { message: String },
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:53:25
[INFO] [stdout]    |
[INFO] [stdout] 53 |     InvalidPrivateKey { reason: String },
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:57:24
[INFO] [stdout]    |
[INFO] [stdout] 57 |     InvalidPublicKey { reason: String },
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:61:24
[INFO] [stdout]    |
[INFO] [stdout] 61 |     InvalidSignature { reason: String },
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:65:22
[INFO] [stdout]    |
[INFO] [stdout] 65 |     InvalidAddress { reason: String },
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:69:29
[INFO] [stdout]    |
[INFO] [stdout] 69 |     CryptoOperationFailed { operation: String },
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:73:27
[INFO] [stdout]    |
[INFO] [stdout] 73 |     KeyDerivationFailed { reason: String },
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:77:23
[INFO] [stdout]    |
[INFO] [stdout] 77 |     EncryptionError { reason: String },
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:85:26
[INFO] [stdout]    |
[INFO] [stdout] 85 |     InvalidTransaction { reason: String },
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:89:30
[INFO] [stdout]    |
[INFO] [stdout] 89 |     TransactionBuildFailed { reason: String },
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:93:20
[INFO] [stdout]    |
[INFO] [stdout] 93 |     InvalidBlock { reason: String },
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:97:23
[INFO] [stdout]    |
[INFO] [stdout] 97 |     ChainStateError { reason: String },
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:101:23
[INFO] [stdout]     |
[INFO] [stdout] 101 |     InvalidObjectId { id: String },
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:105:22
[INFO] [stdout]     |
[INFO] [stdout] 105 |     ObjectNotFound { id: String },
[INFO] [stdout]     |                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:109:23
[INFO] [stdout]     |
[INFO] [stdout] 109 |     ValidationError { field: String, reason: String },
[INFO] [stdout]     |                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:109:38
[INFO] [stdout]     |
[INFO] [stdout] 109 |     ValidationError { field: String, reason: String },
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:113:29
[INFO] [stdout]     |
[INFO] [stdout] 113 |     CryptoOperationFailed { operation: String },
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:130:27
[INFO] [stdout]     |
[INFO] [stdout] 130 |     SerializationFailed { reason: String },
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:134:29
[INFO] [stdout]     |
[INFO] [stdout] 134 |     DeserializationFailed { reason: String },
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:138:21
[INFO] [stdout]     |
[INFO] [stdout] 138 |     InvalidFormat { expected: String, actual: String },
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:138:39
[INFO] [stdout]     |
[INFO] [stdout] 138 |     InvalidFormat { expected: String, actual: String },
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:142:19
[INFO] [stdout]     |
[INFO] [stdout] 142 |     BufferError { reason: String },
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:146:27
[INFO] [stdout]     |
[INFO] [stdout] 146 |     TypeConversionError { from: String, to: String },
[INFO] [stdout]     |                           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:146:41
[INFO] [stdout]     |
[INFO] [stdout] 146 |     TypeConversionError { from: String, to: String },
[INFO] [stdout]     |                                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:154:27
[INFO] [stdout]     |
[INFO] [stdout] 154 |     BackendNotAvailable { backend: String },
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:158:23
[INFO] [stdout]     |
[INFO] [stdout] 158 |     OperationFailed { operation: String, reason: String },
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:158:42
[INFO] [stdout]     |
[INFO] [stdout] 158 |     OperationFailed { operation: String, reason: String },
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:162:28
[INFO] [stdout]     |
[INFO] [stdout] 162 |     AuthenticationFailed { reason: String },
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:166:24
[INFO] [stdout]     |
[INFO] [stdout] 166 |     PermissionDenied { resource: String },
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:170:24
[INFO] [stdout]     |
[INFO] [stdout] 170 |     ResourceNotFound { resource: String },
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:178:23
[INFO] [stdout]     |
[INFO] [stdout] 178 |     ConnectionError { reason: String },
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:190:25
[INFO] [stdout]     |
[INFO] [stdout] 190 |     ConnectionRefused { address: String },
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:194:27
[INFO] [stdout]     |
[INFO] [stdout] 194 |     DnsResolutionFailed { hostname: String },
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:198:18
[INFO] [stdout]     |
[INFO] [stdout] 198 |     InvalidUrl { url: String },
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:202:17
[INFO] [stdout]     |
[INFO] [stdout] 202 |     HttpError { status: u16, message: String },
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:202:30
[INFO] [stdout]     |
[INFO] [stdout] 202 |     HttpError { status: u16, message: String },
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ecc/address.rs:27:14
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Legacy { version: u8 },
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/storage/mod.rs:358:9
[INFO] [stdout]     |
[INFO] [stdout] 358 |         pub fn new(inner: S, max_cache_size: usize) -> Self {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ecc::PrivateKey`
[INFO] [stdout]    --> src/chain/transaction_builder.rs:529:9
[INFO] [stdout]     |
[INFO] [stdout] 529 |     use crate::ecc::PrivateKey;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ecc::PrivateKey`
[INFO] [stdout]    --> src/chain/transaction_helper.rs:459:9
[INFO] [stdout]     |
[INFO] [stdout] 459 |     use crate::ecc::PrivateKey;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `de::DeserializeOwned as TestDeserializeOwned`
[INFO] [stdout]   --> src/serializer/serializer.rs:15:26
[INFO] [stdout]    |
[INFO] [stdout] 15 | use serde::{Deserialize, de::DeserializeOwned as TestDeserializeOwned};
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/ecc/address.rs:264:29
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let mut rng = rand::thread_rng();
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]  --> src/ecc/brain_key.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rand::{Rng, thread_rng};
[INFO] [stdout]   |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/ecc/brain_key.rs:45:23
[INFO] [stdout]    |
[INFO] [stdout] 45 |         let mut rng = thread_rng();
[INFO] [stdout]    |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]  --> src/ecc/key_utils.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rand::{Rng, thread_rng};
[INFO] [stdout]   |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/ecc/key_utils.rs:135:23
[INFO] [stdout]     |
[INFO] [stdout] 135 |         let mut rng = thread_rng();
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/ecc/key_utils.rs:161:23
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let mut rng = thread_rng();
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]  --> src/ecc/aes.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rand::{Rng, thread_rng};
[INFO] [stdout]   |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]   --> src/ecc/aes.rs:32:31
[INFO] [stdout]    |
[INFO] [stdout] 32 |                 let mut rng = thread_rng();
[INFO] [stdout]    |                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/ecc/aes.rs:175:31
[INFO] [stdout]     |
[INFO] [stdout] 175 |                 let mut rng = thread_rng();
[INFO] [stdout]     |                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/ecc/aes.rs:282:23
[INFO] [stdout]     |
[INFO] [stdout] 282 |         let mut rng = thread_rng();
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/ecc/aes.rs:288:23
[INFO] [stdout]     |
[INFO] [stdout] 288 |         let mut rng = thread_rng();
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/chain/account_login.rs:434:29
[INFO] [stdout]     |
[INFO] [stdout] 434 |         let mut rng = rand::thread_rng();
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/chain/account_login.rs:442:29
[INFO] [stdout]     |
[INFO] [stdout] 442 |         let mut rng = rand::thread_rng();
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/chain/account_login.rs:450:29
[INFO] [stdout]     |
[INFO] [stdout] 450 |         let mut rng = rand::thread_rng();
[INFO] [stdout]     |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `api_url`
[INFO] [stdout]    --> src/chain/transaction_helper.rs:360:9
[INFO] [stdout]     |
[INFO] [stdout] 360 |         api_url: &str,
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_api_url`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `secp256k1::SecretKey::from_slice`: Use `from_byte_array` instead.
[INFO] [stdout]   --> src/ecc/private_key.rs:38:30
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let key = SecretKey::from_slice(bytes)
[INFO] [stdout]    |                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `secp256k1::Message::from_slice`: use from_digest instead
[INFO] [stdout]    --> src/ecc/private_key.rs:137:32
[INFO] [stdout]     |
[INFO] [stdout] 137 |         let message = Message::from_slice(message_hash)
[INFO] [stdout]     |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `secp256k1::SecretKey::from_slice`: Use `from_byte_array` instead.
[INFO] [stdout]    --> src/ecc/private_key.rs:189:42
[INFO] [stdout]     |
[INFO] [stdout] 189 |         if let Ok(zero_key) = SecretKey::from_slice(&zero_bytes) {
[INFO] [stdout]     |                                          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `secp256k1::Message::from_slice`: use from_digest instead
[INFO] [stdout]    --> src/ecc/public_key.rs:130:32
[INFO] [stdout]     |
[INFO] [stdout] 130 |         let message = Message::from_slice(message_hash)
[INFO] [stdout]     |                                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `secp256k1::Message::from_slice`: use from_digest instead
[INFO] [stdout]    --> src/ecc/signature.rs:219:36
[INFO] [stdout]     |
[INFO] [stdout] 219 |         let message_obj = Message::from_slice(&hash).unwrap();
[INFO] [stdout]     |                                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/ecc/address.rs:265:34
[INFO] [stdout]     |
[INFO] [stdout] 265 |         let hash: [u8; 20] = rng.gen();
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]   --> src/ecc/brain_key.rs:49:29
[INFO] [stdout]    |
[INFO] [stdout] 49 |             let index = rng.gen_range(0..dictionary.len());
[INFO] [stdout]    |                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/ecc/key_utils.rs:136:33
[INFO] [stdout]     |
[INFO] [stdout] 136 |         (0..length).map(|_| rng.gen()).collect()
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/ecc/key_utils.rs:170:43
[INFO] [stdout]     |
[INFO] [stdout] 170 |                 let random_byte: u8 = rng.gen();
[INFO] [stdout]     |                                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]   --> src/ecc/aes.rs:33:21
[INFO] [stdout]    |
[INFO] [stdout] 33 |                 rng.gen()
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/ecc/aes.rs:176:37
[INFO] [stdout]     |
[INFO] [stdout] 176 |                 (0..16).map(|_| rng.gen()).collect()
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `secp256k1::SecretKey::from_slice`: Use `from_byte_array` instead.
[INFO] [stdout]    --> src/ecc/aes.rs:222:37
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let secret_key = SecretKey::from_slice(private_key)
[INFO] [stdout]     |                                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/ecc/aes.rs:283:13
[INFO] [stdout]     |
[INFO] [stdout] 283 |         rng.gen()
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/ecc/aes.rs:289:13
[INFO] [stdout]     |
[INFO] [stdout] 289 |         rng.gen()
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/chain/account_login.rs:435:42
[INFO] [stdout]     |
[INFO] [stdout] 435 |         let random_bytes: [u8; 16] = rng.gen();
[INFO] [stdout]     |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/chain/account_login.rs:443:42
[INFO] [stdout]     |
[INFO] [stdout] 443 |         let random_bytes: [u8; 32] = rng.gen();
[INFO] [stdout]     |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> src/chain/account_login.rs:451:42
[INFO] [stdout]     |
[INFO] [stdout] 451 |         let random_bytes: [u8; 32] = rng.gen();
[INFO] [stdout]     |                                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `r_squared_rust::error::Result`
[INFO] [stdout]  --> tests/compatibility/ecc_compatibility.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use r_squared_rust::error::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TestVector` and `assert_bytes_equal`
[INFO] [stdout]  --> tests/compatibility/ecc_compatibility.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 | use super::{TestVector, assert_bytes_equal, assert_strings_equal};
[INFO] [stdout]   |             ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `r_squared_rust::error::Result`
[INFO] [stdout]  --> tests/compatibility/chain_compatibility.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use r_squared_rust::error::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TestVector` and `assert_bytes_equal`
[INFO] [stdout]  --> tests/compatibility/chain_compatibility.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 | use super::{TestVector, assert_bytes_equal, assert_strings_equal};
[INFO] [stdout]   |             ^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `r_squared_rust::error::Result`
[INFO] [stdout]  --> tests/compatibility/serializer_compatibility.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use r_squared_rust::error::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TestVector`
[INFO] [stdout]   --> tests/compatibility/serializer_compatibility.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::{TestVector, assert_bytes_equal, assert_strings_equal};
[INFO] [stdout]    |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Digest`
[INFO] [stdout]  --> src/ecc/public_key.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ripemd::{Ripemd160, Digest as RipemdDigest};
[INFO] [stdout]   |                         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ripemd::Digest`
[INFO] [stdout]  --> src/ecc/address.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use ripemd::Digest as RipemdDigest;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Digest`
[INFO] [stdout]  --> src/ecc/brain_key.rs:5:20
[INFO] [stdout]   |
[INFO] [stdout] 5 | use sha2::{Sha256, Digest};
[INFO] [stdout]   |                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Digest`
[INFO] [stdout]  --> src/ecc/hash.rs:6:25
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ripemd::{Ripemd160, Digest as RipemdDigest};
[INFO] [stdout]   |                         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> src/chain/number_utils.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncReadExt`
[INFO] [stdout]   --> src/storage/storage_local.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StorageApi`
[INFO] [stdout]   --> src/storage/storage_local.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     StorageApi, StorageApiSync, StorageConfig, StorageMetadata, StorageBackend,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsyncWriteExt`
[INFO] [stdout]   --> src/storage/storage_local.rs:23:31
[INFO] [stdout]    |
[INFO] [stdout] 23 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
[INFO] [stdout]    |                               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_compressed`
[INFO] [stdout]   --> src/ecc/private_key.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let is_compressed = if decoded.len() == 38 {
[INFO] [stdout]    |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_compressed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `zero_key`
[INFO] [stdout]    --> src/ecc/private_key.rs:189:19
[INFO] [stdout]     |
[INFO] [stdout] 189 |         if let Ok(zero_key) = SecretKey::from_slice(&zero_bytes) {
[INFO] [stdout]     |                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_zero_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `asset_amount`
[INFO] [stdout]   --> tests/compatibility/chain_compatibility.rs:76:13
[INFO] [stdout]    |
[INFO] [stdout] 76 |         let asset_amount = AssetAmount {
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_asset_amount`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_public`
[INFO] [stdout]    --> tests/compatibility/chain_compatibility.rs:185:9
[INFO] [stdout]     |
[INFO] [stdout] 185 |     let sender_public = sender_private.public_key()
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_public`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `product`
[INFO] [stdout]    --> tests/compatibility/chain_compatibility.rs:309:9
[INFO] [stdout]     |
[INFO] [stdout] 309 |     let product = num1.multiply(&num2).expect("Failed to multiply numbers");
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_product`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `quotient`
[INFO] [stdout]    --> tests/compatibility/chain_compatibility.rs:313:9
[INFO] [stdout]     |
[INFO] [stdout] 313 |     let quotient = num1.divide(&num2).expect("Failed to divide numbers");
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_quotient`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]    --> src/ecc/mod.rs:178:31
[INFO] [stdout]     |
[INFO] [stdout] 178 |     pub fn recover_public_key(message: &[u8], signature: &Signature) -> EccResult<PublicKey> {
[INFO] [stdout]     |                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_public`
[INFO] [stdout]    --> tests/compatibility/serializer_compatibility.rs:258:9
[INFO] [stdout]     |
[INFO] [stdout] 258 |     let sender_public = sender_private.public_key()
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_public`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `serializer`
[INFO] [stdout]    --> tests/compatibility/serializer_compatibility.rs:382:9
[INFO] [stdout]     |
[INFO] [stdout] 382 |     let serializer = Serializer::new();
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_serializer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIGNATURE_VECTORS` is never used
[INFO] [stdout]   --> tests/compatibility/ecc_compatibility.rs:31:7
[INFO] [stdout]    |
[INFO] [stdout] 31 | const SIGNATURE_VECTORS: &[(&str, &str, &str, bool)] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRANSACTION_VECTORS` is never used
[INFO] [stdout]   --> tests/compatibility/chain_compatibility.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 | const TRANSACTION_VECTORS: &[(&str, &str)] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SERIALIZATION_VECTORS` is never used
[INFO] [stdout]   --> tests/compatibility/serializer_compatibility.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const SERIALIZATION_VECTORS: &[(&str, &str)] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JSON_VECTORS` is never used
[INFO] [stdout]   --> tests/compatibility/serializer_compatibility.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const JSON_VECTORS: &[(&str, &str)] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_all_test_vectors` is never used
[INFO] [stdout]    --> tests/compatibility/test_vectors.rs:161:8
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub fn generate_all_test_vectors() -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_js_reference_vectors` is never used
[INFO] [stdout]    --> tests/compatibility/test_vectors.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub fn create_js_reference_vectors() -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_test_vectors` is never used
[INFO] [stdout]    --> tests/compatibility/test_vectors.rs:236:8
[INFO] [stdout]     |
[INFO] [stdout] 236 | pub fn validate_test_vectors() -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_ecc_vectors` is never used
[INFO] [stdout]    --> tests/compatibility/test_vectors.rs:264:4
[INFO] [stdout]     |
[INFO] [stdout] 264 | fn validate_ecc_vectors(vectors: &[TestVector]) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_chain_vectors` is never used
[INFO] [stdout]    --> tests/compatibility/test_vectors.rs:298:4
[INFO] [stdout]     |
[INFO] [stdout] 298 | fn validate_chain_vectors(vectors: &[TestVector]) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_serializer_vectors` is never used
[INFO] [stdout]    --> tests/compatibility/test_vectors.rs:341:4
[INFO] [stdout]     |
[INFO] [stdout] 341 | fn validate_serializer_vectors(vectors: &[TestVector]) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/integration_tests.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     builder.set_expiration(expiration as u32);
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 66 |     let _ = builder.set_expiration(expiration as u32);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `signing_data`
[INFO] [stdout]    --> src/chain/transaction_helper.rs:148:13
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let signing_data = Self::serialize_for_signing(transaction, chain_id)?;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_signing_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `authority`
[INFO] [stdout]    --> src/chain/transaction_helper.rs:439:25
[INFO] [stdout]     |
[INFO] [stdout] 439 |             if let Some(authority) = authorities.get(&account_id) {
[INFO] [stdout]     |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_authority`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chain_properties`
[INFO] [stdout]   --> src/chain/chain_validation.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 86 |         chain_properties: &ChainProperties,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chain_properties`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sequence`
[INFO] [stdout]    --> src/chain/account_login.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |         sequence: u32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 112 |         _sequence: u32,
[INFO] [stdout]     |         +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `DEFAULT_MAX_RETRIES`
[INFO] [stdout]     |
[INFO] [stdout] 112 -         sequence: u32,
[INFO] [stdout] 112 +         storage::constants::DEFAULT_MAX_RETRIES: u32,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `credentials`
[INFO] [stdout]    --> src/chain/mod.rs:156:29
[INFO] [stdout]     |
[INFO] [stdout] 156 |     pub fn login(&mut self, credentials: &LoginCredentials) -> ChainResult<LoginChallenge> {
[INFO] [stdout]     |                             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_credentials`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/serializer/serializer_operation.rs:574:36
[INFO] [stdout]     |
[INFO] [stdout] 574 |     fn deserialize_account_options(data: &[u8], offset: &mut usize) -> SerializerResult<crate::chain::AccountOptions> {
[INFO] [stdout]     |                                    ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/serializer/serializer_operation.rs:589:34
[INFO] [stdout]     |
[INFO] [stdout] 589 |     fn deserialize_asset_options(data: &[u8], offset: &mut usize) -> SerializerResult<crate::chain::AssetOptions> {
[INFO] [stdout]     |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fill_or_kill`
[INFO] [stdout]   --> src/serializer/serializer_validation.rs:96:95
[INFO] [stdout]    |
[INFO] [stdout] 96 |             Operation::LimitOrderCreate { seller, amount_to_sell, min_to_receive, expiration, fill_or_kill, fee, extensions } => {
[INFO] [stdout]    |                                                                                               ^^^^^^^^^^^^ help: try ignoring the field: `fill_or_kill: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `options`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:117:100
[INFO] [stdout]     |
[INFO] [stdout] 117 |             Operation::AccountCreate { registrar, referrer, referrer_percent, name, owner, active, options, fee, extensions } => {
[INFO] [stdout]     |                                                                                                    ^^^^^^^ help: try ignoring the field: `options: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_options`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:134:64
[INFO] [stdout]     |
[INFO] [stdout] 134 |             Operation::AccountUpdate { account, owner, active, new_options, fee, extensions } => {
[INFO] [stdout]     |                                                                ^^^^^^^^^^^ help: try ignoring the field: `new_options: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `common_options`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:148:65
[INFO] [stdout]     |
[INFO] [stdout] 148 |             Operation::AssetCreate { issuer, symbol, precision, common_options, bitasset_opts, is_prediction_market, fee, extensions } => {
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^^ help: try ignoring the field: `common_options: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bitasset_opts`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:148:81
[INFO] [stdout]     |
[INFO] [stdout] 148 |             Operation::AssetCreate { issuer, symbol, precision, common_options, bitasset_opts, is_prediction_market, fee, extensions } => {
[INFO] [stdout]     |                                                                                 ^^^^^^^^^^^^^ help: try ignoring the field: `bitasset_opts: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_prediction_market`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:148:96
[INFO] [stdout]     |
[INFO] [stdout] 148 |             Operation::AssetCreate { issuer, symbol, precision, common_options, bitasset_opts, is_prediction_market, fee, extensions } => {
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^^^^^^^^^^ help: try ignoring the field: `is_prediction_market: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_options`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:162:63
[INFO] [stdout]     |
[INFO] [stdout] 162 |             Operation::AssetUpdate { issuer, asset_to_update, new_options, fee, extensions } => {
[INFO] [stdout]     |                                                               ^^^^^^^^^^^ help: try ignoring the field: `new_options: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:175:33
[INFO] [stdout]     |
[INFO] [stdout] 175 |             Operation::Custom { id, payer, required_auths, data, fee, extensions } => {
[INFO] [stdout]     |                                 ^^ help: try ignoring the field: `id: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]    --> src/serializer/serializer_validation.rs:547:38
[INFO] [stdout]     |
[INFO] [stdout] 547 |     pub fn comprehensive_validate<T>(data: &T, type_name: &str) -> SerializerResult<()>
[INFO] [stdout]     |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `inner` is never used
[INFO] [stdout]    --> src/ecc/private_key.rs:172:19
[INFO] [stdout]     |
[INFO] [stdout]  17 | impl PrivateKey {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub(crate) fn inner(&self) -> &SecretKey {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_account` is never used
[INFO] [stdout]    --> src/chain/account_login.rs:527:8
[INFO] [stdout]     |
[INFO] [stdout] 527 |     fn create_test_account() -> Account {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `buffer_size` is never read
[INFO] [stdout]    --> src/serializer/fast_parser.rs:431:5
[INFO] [stdout]     |
[INFO] [stdout] 428 | pub struct StreamingParser<R: Read> {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 431 |     buffer_size: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `serialize_object_id_vec` and `deserialize_object_id_vec` are never used
[INFO] [stdout]    --> src/serializer/serializer_operation.rs:470:8
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl SerializerOperation {
[INFO] [stdout]     | ------------------------ associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 470 |     fn serialize_object_id_vec(value: &[ObjectId], buffer: &mut Vec<u8>) -> SerializerResult<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 699 |     fn deserialize_object_id_vec(data: &[u8], offset: &mut usize) -> SerializerResult<Vec<ObjectId>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `buffer_capacity` is never read
[INFO] [stdout]   --> src/serializer/serializer.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Serializer {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 19 |     /// Buffer capacity for serialization operations
[INFO] [stdout] 20 |     buffer_capacity: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:29:20
[INFO] [stdout]    |
[INFO] [stdout] 29 |     InvalidInput { message: String },
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:33:21
[INFO] [stdout]    |
[INFO] [stdout] 33 |     Configuration { message: String },
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:45:13
[INFO] [stdout]    |
[INFO] [stdout] 45 |     Other { message: String },
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:53:25
[INFO] [stdout]    |
[INFO] [stdout] 53 |     InvalidPrivateKey { reason: String },
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:57:24
[INFO] [stdout]    |
[INFO] [stdout] 57 |     InvalidPublicKey { reason: String },
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:61:24
[INFO] [stdout]    |
[INFO] [stdout] 61 |     InvalidSignature { reason: String },
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:65:22
[INFO] [stdout]    |
[INFO] [stdout] 65 |     InvalidAddress { reason: String },
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:69:29
[INFO] [stdout]    |
[INFO] [stdout] 69 |     CryptoOperationFailed { operation: String },
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:73:27
[INFO] [stdout]    |
[INFO] [stdout] 73 |     KeyDerivationFailed { reason: String },
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:77:23
[INFO] [stdout]    |
[INFO] [stdout] 77 |     EncryptionError { reason: String },
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:85:26
[INFO] [stdout]    |
[INFO] [stdout] 85 |     InvalidTransaction { reason: String },
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:89:30
[INFO] [stdout]    |
[INFO] [stdout] 89 |     TransactionBuildFailed { reason: String },
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:93:20
[INFO] [stdout]    |
[INFO] [stdout] 93 |     InvalidBlock { reason: String },
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/error.rs:97:23
[INFO] [stdout]    |
[INFO] [stdout] 97 |     ChainStateError { reason: String },
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:101:23
[INFO] [stdout]     |
[INFO] [stdout] 101 |     InvalidObjectId { id: String },
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:105:22
[INFO] [stdout]     |
[INFO] [stdout] 105 |     ObjectNotFound { id: String },
[INFO] [stdout]     |                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:109:23
[INFO] [stdout]     |
[INFO] [stdout] 109 |     ValidationError { field: String, reason: String },
[INFO] [stdout]     |                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:109:38
[INFO] [stdout]     |
[INFO] [stdout] 109 |     ValidationError { field: String, reason: String },
[INFO] [stdout]     |                                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:113:29
[INFO] [stdout]     |
[INFO] [stdout] 113 |     CryptoOperationFailed { operation: String },
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:130:27
[INFO] [stdout]     |
[INFO] [stdout] 130 |     SerializationFailed { reason: String },
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:134:29
[INFO] [stdout]     |
[INFO] [stdout] 134 |     DeserializationFailed { reason: String },
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:138:21
[INFO] [stdout]     |
[INFO] [stdout] 138 |     InvalidFormat { expected: String, actual: String },
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:138:39
[INFO] [stdout]     |
[INFO] [stdout] 138 |     InvalidFormat { expected: String, actual: String },
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:142:19
[INFO] [stdout]     |
[INFO] [stdout] 142 |     BufferError { reason: String },
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:146:27
[INFO] [stdout]     |
[INFO] [stdout] 146 |     TypeConversionError { from: String, to: String },
[INFO] [stdout]     |                           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:146:41
[INFO] [stdout]     |
[INFO] [stdout] 146 |     TypeConversionError { from: String, to: String },
[INFO] [stdout]     |                                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:154:27
[INFO] [stdout]     |
[INFO] [stdout] 154 |     BackendNotAvailable { backend: String },
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:158:23
[INFO] [stdout]     |
[INFO] [stdout] 158 |     OperationFailed { operation: String, reason: String },
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:158:42
[INFO] [stdout]     |
[INFO] [stdout] 158 |     OperationFailed { operation: String, reason: String },
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:162:28
[INFO] [stdout]     |
[INFO] [stdout] 162 |     AuthenticationFailed { reason: String },
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:166:24
[INFO] [stdout]     |
[INFO] [stdout] 166 |     PermissionDenied { resource: String },
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:170:24
[INFO] [stdout]     |
[INFO] [stdout] 170 |     ResourceNotFound { resource: String },
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:178:23
[INFO] [stdout]     |
[INFO] [stdout] 178 |     ConnectionError { reason: String },
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:190:25
[INFO] [stdout]     |
[INFO] [stdout] 190 |     ConnectionRefused { address: String },
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:194:27
[INFO] [stdout]     |
[INFO] [stdout] 194 |     DnsResolutionFailed { hostname: String },
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:198:18
[INFO] [stdout]     |
[INFO] [stdout] 198 |     InvalidUrl { url: String },
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:202:17
[INFO] [stdout]     |
[INFO] [stdout] 202 |     HttpError { status: u16, message: String },
[INFO] [stdout]     |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/error.rs:202:30
[INFO] [stdout]     |
[INFO] [stdout] 202 |     HttpError { status: u16, message: String },
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/ecc/address.rs:27:14
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Legacy { version: u8 },
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/storage/mod.rs:358:9
[INFO] [stdout]     |
[INFO] [stdout] 358 |         pub fn new(inner: S, max_cache_size: usize) -> Self {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 23s
[INFO] running `Command { std: "docker" "inspect" "59b8af252618e8820600bbb0b2b2261770da1242368067d1179c4b7033b74618", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "59b8af252618e8820600bbb0b2b2261770da1242368067d1179c4b7033b74618", kill_on_drop: false }`
[INFO] [stdout] 59b8af252618e8820600bbb0b2b2261770da1242368067d1179c4b7033b74618
