[INFO] fetching crate stack_test_epic_core 3.0.3...
[INFO] testing stack_test_epic_core-3.0.3 against nightly-2024-10-28 for randomize-layout
[INFO] extracting crate stack_test_epic_core 3.0.3 into /workspace/builds/worker-5-tc1/source
[INFO] validating manifest of crates.io crate stack_test_epic_core 3.0.3 on toolchain nightly-2024-10-28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2024-10-28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate stack_test_epic_core 3.0.3
[INFO] finished tweaking crates.io crate stack_test_epic_core 3.0.3
[INFO] tweaked toml for crates.io crate stack_test_epic_core 3.0.3 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2024-10-28" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 203 packages to latest compatible versions
[INFO] [stderr]       Adding croaring v0.3.9 (available: v2.1.1)
[INFO] [stderr]       Adding keccak-hash v0.2.0 (available: v0.11.0)
[INFO] [stderr]       Adding md5 v0.6.1 (available: v0.7.0)
[INFO] [stderr]       Adding num v0.2.1 (available: v0.4.3)
[INFO] [stderr]       Adding num-bigint v0.2.6 (available: v0.4.6)
[INFO] [stderr]       Adding proc-macro2 v0.3.5 (available: v0.3.8)
[INFO] [stderr]       Adding rand v0.6.5 (available: v0.8.5)
[INFO] [stderr]       Adding sha2 v0.8.2 (available: v0.10.8)
[INFO] [stderr]       Adding siphasher v0.2.3 (available: v1.0.1)
[INFO] [stderr]       Adding subtle v2.4.1 (available: v2.6.1)
[INFO] [stderr]       Adding uuid v0.6.5 (available: v1.11.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly-2024-10-28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded stack_test_epic_util v3.0.3
[INFO] [stderr]   Downloaded uuid v0.6.5
[INFO] [stderr]   Downloaded arc-swap v0.3.11
[INFO] [stderr]   Downloaded antidote v1.0.0
[INFO] [stderr]   Downloaded thread-id v3.3.0
[INFO] [stderr]   Downloaded serde-value v0.5.3
[INFO] [stderr]   Downloaded log4rs v0.8.3
[INFO] [stderr]   Downloaded cexpr v0.2.3
[INFO] [stderr]   Downloaded fixed-hash v0.3.2
[INFO] [stderr]   Downloaded parity-codec v3.5.4
[INFO] [stderr]   Downloaded bigint v4.4.3
[INFO] [stderr]   Downloaded clang-sys v0.23.0
[INFO] [stderr]   Downloaded password-hash v0.2.3
[INFO] [stderr]   Downloaded bindgen v0.37.4
[INFO] [stderr]   Downloaded uint v0.7.1
[INFO] [stderr]   Downloaded keccak-hash v0.2.0
[INFO] [stderr]   Downloaded grin_secp256k1zkp v0.7.14
[INFO] [stderr]   Downloaded ripemd160 v0.9.1
[INFO] [stderr]   Downloaded stack_test_epic_keychain v3.0.3
[INFO] [stderr]   Downloaded static_assertions v0.2.5
[INFO] [stderr]   Downloaded impl-codec v0.2.0
[INFO] [stderr]   Downloaded primitive-types v0.3.0
[INFO] [stderr]   Downloaded md5 v0.6.1
[INFO] [stderr]   Downloaded croaring v0.3.9
[INFO] [stderr]   Downloaded croaring-sys v0.3.9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-10-28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5919234dac74a2683184242c288df60d6edf7fe5a7c8324650dae350fd21e778
[INFO] running `Command { std: "docker" "start" "-a" "5919234dac74a2683184242c288df60d6edf7fe5a7c8324650dae350fd21e778", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5919234dac74a2683184242c288df60d6edf7fe5a7c8324650dae350fd21e778", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5919234dac74a2683184242c288df60d6edf7fe5a7c8324650dae350fd21e778", kill_on_drop: false }`
[INFO] [stdout] 5919234dac74a2683184242c288df60d6edf7fe5a7c8324650dae350fd21e778
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-10-28" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a424804f93254adf4fb3882f5e3472b6c08da299fd688e04f46341e044f51f66
[INFO] running `Command { std: "docker" "start" "-a" "a424804f93254adf4fb3882f5e3472b6c08da299fd688e04f46341e044f51f66", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.161
[INFO] [stderr]    Compiling rand_core v0.4.2
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling autocfg v0.1.8
[INFO] [stderr]    Compiling syn v2.0.86
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling glob v0.2.11
[INFO] [stderr]    Compiling libloading v0.5.2
[INFO] [stderr]    Compiling rand_core v0.3.1
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling arrayvec v0.4.12
[INFO] [stderr]    Compiling clang-sys v0.23.0
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling unicode-xid v0.1.0
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling textwrap v0.11.0
[INFO] [stderr]    Compiling proc-macro2 v0.3.5
[INFO] [stderr]    Compiling rand v0.5.6
[INFO] [stderr]    Compiling memchr v1.0.2
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling nom v3.2.1
[INFO] [stderr]    Compiling ansi_term v0.12.1
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling bindgen v0.37.4
[INFO] [stderr]    Compiling vec_map v0.8.2
[INFO] [stderr]    Compiling crunchy v0.2.2
[INFO] [stderr]    Compiling strsim v0.8.0
[INFO] [stderr]    Compiling cexpr v0.2.3
[INFO] [stderr]    Compiling clap v2.34.0
[INFO] [stderr]    Compiling parking_lot_core v0.3.1
[INFO] [stderr]    Compiling quote v0.5.2
[INFO] [stderr]    Compiling regex-automata v0.4.8
[INFO] [stderr]    Compiling which v1.0.5
[INFO] [stderr]    Compiling digest v0.9.0
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling peeking_take_while v0.1.2
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling traitobject v0.1.0
[INFO] [stderr]    Compiling owning_ref v0.4.1
[INFO] [stderr]    Compiling unsafe-any v0.4.2
[INFO] [stderr]    Compiling yaml-rust v0.4.5
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling ordered-float v1.1.1
[INFO] [stderr]    Compiling object v0.36.5
[INFO] [stderr]    Compiling block-buffer v0.9.0
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]    Compiling grin_secp256k1zkp v0.7.14
[INFO] [stderr]    Compiling scopeguard v0.3.3
[INFO] [stderr]    Compiling opaque-debug v0.3.1
[INFO] [stderr]    Compiling rustc-hex v2.1.0
[INFO] [stderr]    Compiling lock_api v0.1.5
[INFO] [stderr]    Compiling num-bigint v0.2.6
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling typemap v0.3.3
[INFO] [stderr]    Compiling crypto-mac v0.11.1
[INFO] [stderr]    Compiling thread-id v3.3.0
[INFO] [stderr]    Compiling rand_os v0.1.3
[INFO] [stderr]    Compiling rand_xorshift v0.1.1
[INFO] [stderr]    Compiling rand_hc v0.1.0
[INFO] [stderr]    Compiling rand_isaac v0.1.1
[INFO] [stderr]    Compiling rand_jitter v0.1.4
[INFO] [stderr]    Compiling generic-array v0.12.4
[INFO] [stderr]    Compiling num-rational v0.2.4
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]    Compiling log-mdc v0.1.0
[INFO] [stderr]    Compiling static_assertions v0.2.5
[INFO] [stderr]    Compiling byte-tools v0.3.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling safemem v0.3.3
[INFO] [stderr]    Compiling base64ct v1.6.0
[INFO] [stderr]    Compiling crunchy v0.1.6
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling arc-swap v0.3.11
[INFO] [stderr]    Compiling antidote v1.0.0
[INFO] [stderr]    Compiling sha2 v0.9.9
[INFO] [stderr]    Compiling password-hash v0.2.3
[INFO] [stderr]    Compiling base64 v0.9.3
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]    Compiling serde_derive v1.0.214
[INFO] [stderr]    Compiling thiserror-impl v1.0.66
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]    Compiling block-padding v0.1.5
[INFO] [stderr]    Compiling fixed-hash v0.3.2
[INFO] [stderr]    Compiling hmac v0.11.0
[INFO] [stderr]    Compiling parking_lot v0.6.4
[INFO] [stderr]    Compiling zeroize v1.8.1
[INFO] [stderr]    Compiling uint v0.7.1
[INFO] [stderr]    Compiling rand v0.4.6
[INFO] [stderr]    Compiling constant_time_eq v0.1.5
[INFO] [stderr]    Compiling failure_derive v0.1.8
[INFO] [stderr]    Compiling blake2-rfc v0.2.18
[INFO] [stderr]    Compiling thiserror v1.0.66
[INFO] [stderr]    Compiling backtrace v0.3.74
[INFO] [stderr]    Compiling zip v0.5.13
[INFO] [stderr]    Compiling pbkdf2 v0.8.0
[INFO] [stderr]    Compiling block-buffer v0.7.3
[INFO] [stderr]    Compiling digest v0.8.1
[INFO] [stderr]    Compiling ripemd160 v0.9.1
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling tiny-keccak v1.5.0
[INFO] [stderr]    Compiling num-traits v0.1.43
[INFO] [stderr]    Compiling opaque-debug v0.2.3
[INFO] [stderr]    Compiling fake-simd v0.1.2
[INFO] [stderr]    Compiling num v0.2.1
[INFO] [stderr]    Compiling failure v0.1.8
[INFO] [stderr]    Compiling sha2 v0.8.2
[INFO] [stderr]    Compiling enum_primitive v0.1.1
[INFO] [stderr]    Compiling bigint v4.4.3
[INFO] [stderr]    Compiling lru-cache v0.1.2
[INFO] [stderr]    Compiling md5 v0.6.1
[INFO] [stderr]    Compiling siphasher v0.2.3
[INFO] [stderr]    Compiling serde v1.0.214
[INFO] [stderr]    Compiling log v0.4.22
[INFO] [stderr]    Compiling serde_json v1.0.132
[INFO] [stderr]    Compiling serde-value v0.5.3
[INFO] [stderr]    Compiling chrono v0.4.38
[INFO] [stderr]    Compiling serde_yaml v0.8.26
[INFO] [stderr]    Compiling parity-codec v3.5.4
[INFO] [stderr]    Compiling uuid v0.6.5
[INFO] [stderr]    Compiling env_logger v0.5.13
[INFO] [stderr]    Compiling impl-codec v0.2.0
[INFO] [stderr]    Compiling primitive-types v0.3.0
[INFO] [stderr]    Compiling log4rs v0.8.3
[INFO] [stderr]    Compiling keccak-hash v0.2.0
[INFO] [stderr]    Compiling stack_test_epic_util v3.0.3
[INFO] [stderr]    Compiling stack_test_epic_keychain v3.0.3
[INFO] [stderr]    Compiling croaring-sys v0.3.9
[INFO] [stderr]    Compiling croaring v0.3.9
[INFO] [stderr]    Compiling stack_test_epic_core v3.0.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `DifficultyNumber`
[INFO] [stdout]   --> src/consensus.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::pow::{Difficulty, DifficultyNumber, PoWType};
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/consensus.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `error_invalid_pow`
[INFO] [stdout]    --> src/consensus.rs:560:14
[INFO] [stdout]     |
[INFO] [stdout] 560 | macro_rules! error_invalid_pow {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::RwLock`
[INFO] [stdout]   --> src/core/block.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::util::RwLock;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/core/block.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/core/block.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `reward`
[INFO] [stdout]   --> src/core/block.rs:32:53
[INFO] [stdout]    |
[INFO] [stdout] 32 |     self, add_reward_foundation, is_foundation_height, reward, reward_at_height, reward_foundation,
[INFO] [stdout]    |                                                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/macros.rs:78:9
[INFO] [stdout]     |
[INFO] [stdout] 78  |     ( $(r#try!($rdr.$read_call($($val),*))),* )
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/core/block.rs:309:28
[INFO] [stdout]     |
[INFO] [stdout] 309 |     let (height, timestamp) = ser_multiread!(reader, read_u64, read_i64);
[INFO] [stdout]     |                               ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/macros.rs:78:9
[INFO] [stdout]     |
[INFO] [stdout] 78  |     ( $(r#try!($rdr.$read_call($($val),*))),* )
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/core/block.rs:316:43
[INFO] [stdout]     |
[INFO] [stdout] 316 |     let (output_mmr_size, kernel_mmr_size) = ser_multiread!(reader, read_u64, read_u64);
[INFO] [stdout]     |                                              ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/macros.rs:92:8
[INFO] [stdout]     |
[INFO] [stdout] 92  |       $( r#try!($wrtr.$write_call($val)) );*
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/core/block.rs:363:3
[INFO] [stdout]     |
[INFO] [stdout] 363 | /         ser_multiwrite!(
[INFO] [stdout] 364 | |             writer,
[INFO] [stdout] 365 | |             [write_u64, self.height],
[INFO] [stdout] 366 | |             [write_i64, self.timestamp.timestamp()],
[INFO] [stdout] ...   |
[INFO] [stdout] 374 | |             [write_u64, self.kernel_mmr_size]
[INFO] [stdout] 375 | |         );
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:23:48
[INFO] [stdout]     |
[INFO] [stdout] 23  |         $thing.iter().map($mapfn).collect::<Vec<_>>();
[INFO] [stdout]     |                                                      ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/core/block.rs:908:21
[INFO] [stdout]     |
[INFO] [stdout] 908 |                 secp.commit_sum(map_vec!(cb_outs, |x| x.commitment()), vec![over_commit])?;
[INFO] [stdout]     |                                 ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `map_vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/core/committed.rs:128:14
[INFO] [stdout]     |
[INFO] [stdout] 128 |     ) -> Result<((Commitment, Commitment)), Error> {
[INFO] [stdout]     |                 ^                        ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 128 -     ) -> Result<((Commitment, Commitment)), Error> {
[INFO] [stdout] 128 +     ) -> Result<(Commitment, Commitment), Error> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> src/macros.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     ( $(r#try!($rdr.$read_call($($val),*))),* )
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/core/compact_block.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 |             ser_multiread!(reader, read_u64, read_u64, read_u64);
[INFO] [stdout]    |             ---------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/macros.rs:92:8
[INFO] [stdout]     |
[INFO] [stdout] 92  |       $( r#try!($wrtr.$write_call($val)) );*
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/core/compact_block.rs:103:3
[INFO] [stdout]     |
[INFO] [stdout] 103 | /         ser_multiwrite!(
[INFO] [stdout] 104 | |             writer,
[INFO] [stdout] 105 | |             [write_u64, self.out_full.len() as u64],
[INFO] [stdout] 106 | |             [write_u64, self.kern_full.len() as u64],
[INFO] [stdout] 107 | |             [write_u64, self.kern_ids.len() as u64]
[INFO] [stdout] 108 | |         );
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `first_fork_height` and `foundation_height`
[INFO] [stdout]  --> src/core/foundation.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::consensus::{first_fork_height, foundation_height, foundation_index, header_version};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/core/id.rs:77:1
[INFO] [stdout]    |
[INFO] [stdout] 77 | / /// We want to sort short_ids in a canonical and consistent manner so we can
[INFO] [stdout] 78 | | /// verify sort order in the same way we do for full inputs|outputs|kernels
[INFO] [stdout] 79 | | /// themselves.
[INFO] [stdout]    | |_--------------^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: elided lifetime has a name
[INFO] [stdout]   --> src/core/pmmr/pmmr.rs:54:41
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl<'a, T, B> PMMR<'a, T, B>
[INFO] [stdout]    |      -- lifetime `'a` declared here
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn new(backend: &'a mut B) -> PMMR<'_, T, B> {
[INFO] [stdout]    |                                            ^^ this elided lifetime gets resolved as `'a`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(elided_named_lifetimes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: elided lifetime has a name
[INFO] [stdout]   --> src/core/pmmr/pmmr.rs:64:55
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl<'a, T, B> PMMR<'a, T, B>
[INFO] [stdout]    |      -- lifetime `'a` declared here
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn at(backend: &'a mut B, last_pos: u64) -> PMMR<'_, T, B> {
[INFO] [stdout]    |                                                          ^^ this elided lifetime gets resolved as `'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: elided lifetime has a name
[INFO] [stdout]   --> src/core/pmmr/readonly_pmmr.rs:44:45
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl<'a, T, B> ReadonlyPMMR<'a, T, B>
[INFO] [stdout]    |      -- lifetime `'a` declared here
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn new(backend: &'a B) -> ReadonlyPMMR<'_, T, B> {
[INFO] [stdout]    |                                                ^^ this elided lifetime gets resolved as `'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: elided lifetime has a name
[INFO] [stdout]   --> src/core/pmmr/readonly_pmmr.rs:54:59
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl<'a, T, B> ReadonlyPMMR<'a, T, B>
[INFO] [stdout]    |      -- lifetime `'a` declared here
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn at(backend: &'a B, last_pos: u64) -> ReadonlyPMMR<'_, T, B> {
[INFO] [stdout]    |                                                              ^^ this elided lifetime gets resolved as `'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: elided lifetime has a name
[INFO] [stdout]   --> src/core/pmmr/rewindable_pmmr.rs:44:47
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl<'a, T, B> RewindablePMMR<'a, T, B>
[INFO] [stdout]    |      -- lifetime `'a` declared here
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn new(backend: &'a B) -> RewindablePMMR<'_, T, B> {
[INFO] [stdout]    |                                                  ^^ this elided lifetime gets resolved as `'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: elided lifetime has a name
[INFO] [stdout]   --> src/core/pmmr/rewindable_pmmr.rs:53:30
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl<'a, T, B> RewindablePMMR<'a, T, B>
[INFO] [stdout]    |      -- lifetime `'a` declared here
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn backend(&'a self) -> &Backend<T> {
[INFO] [stdout]    |                                 ^ this elided lifetime gets resolved as `'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: elided lifetime has a name
[INFO] [stdout]   --> src/core/pmmr/rewindable_pmmr.rs:59:61
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl<'a, T, B> RewindablePMMR<'a, T, B>
[INFO] [stdout]    |      -- lifetime `'a` declared here
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn at(backend: &'a B, last_pos: u64) -> RewindablePMMR<'_, T, B> {
[INFO] [stdout]    |                                                                ^^ this elided lifetime gets resolved as `'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/core/transaction.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `util::RwLock`
[INFO] [stdout]   --> src/core/transaction.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use util::RwLock;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/macros.rs:92:8
[INFO] [stdout]     |
[INFO] [stdout] 92  |       $( r#try!($wrtr.$write_call($val)) );*
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/core/transaction.rs:518:3
[INFO] [stdout]     |
[INFO] [stdout] 518 | /         ser_multiwrite!(
[INFO] [stdout] 519 | |             writer,
[INFO] [stdout] 520 | |             [write_u64, self.inputs.len() as u64],
[INFO] [stdout] 521 | |             [write_u64, self.outputs.len() as u64],
[INFO] [stdout] 522 | |             [write_u64, self.kernels.len() as u64]
[INFO] [stdout] 523 | |         );
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/macros.rs:78:9
[INFO] [stdout]     |
[INFO] [stdout] 78  |     ( $(r#try!($rdr.$read_call($($val),*))),* )
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/core/transaction.rs:538:4
[INFO] [stdout]     |
[INFO] [stdout] 538 |             ser_multiread!(reader, read_u64, read_u64, read_u64);
[INFO] [stdout]     |             ---------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util`
[INFO] [stdout]   --> src/genesis.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::util;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::secp::constants::SINGLE_BULLET_PROOF_SIZE`
[INFO] [stdout]   --> src/genesis.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::util::secp::constants::SINGLE_BULLET_PROOF_SIZE;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Commitment` and `RangeProof`
[INFO] [stdout]   --> src/genesis.rs:29:35
[INFO] [stdout]    |
[INFO] [stdout] 29 | use crate::util::secp::pedersen::{Commitment, RangeProof};
[INFO] [stdout]    |                                   ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::secp::Signature`
[INFO] [stdout]   --> src/genesis.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use crate::util::secp::Signature;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DIFFICULTY_ADJUST_WINDOW`
[INFO] [stdout]   --> src/global.rs:23:37
[INFO] [stdout]    |
[INFO] [stdout] 23 |     DAY_HEIGHT, DEFAULT_MIN_EDGE_BITS, DIFFICULTY_ADJUST_WINDOW, INITIAL_DIFFICULTY,
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `new_cuckaroo_ctx`
[INFO] [stdout]   --> src/global.rs:27:24
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::pow::{self, new_cuckaroo_ctx, new_cuckatoo_ctx, EdgeType, PoWContext};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/global.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/global.rs:290:5
[INFO] [stdout]     |
[INFO] [stdout] 290 |     if (height <= consensus::BLOCK_ERA_1) {
[INFO] [stdout]     |        ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 290 -     if (height <= consensus::BLOCK_ERA_1) {
[INFO] [stdout] 290 +     if height <= consensus::BLOCK_ERA_1 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/global.rs:292:12
[INFO] [stdout]     |
[INFO] [stdout] 292 |     } else if (height <= consensus::BLOCK_ERA_2) {
[INFO] [stdout]     |               ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 292 -     } else if (height <= consensus::BLOCK_ERA_2) {
[INFO] [stdout] 292 +     } else if height <= consensus::BLOCK_ERA_2 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/global.rs:294:12
[INFO] [stdout]     |
[INFO] [stdout] 294 |     } else if (height <= consensus::BLOCK_ERA_3) {
[INFO] [stdout]     |               ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 294 -     } else if (height <= consensus::BLOCK_ERA_3) {
[INFO] [stdout] 294 +     } else if height <= consensus::BLOCK_ERA_3 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/global.rs:296:12
[INFO] [stdout]     |
[INFO] [stdout] 296 |     } else if (height <= consensus::BLOCK_ERA_4) {
[INFO] [stdout]     |               ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 296 -     } else if (height <= consensus::BLOCK_ERA_4) {
[INFO] [stdout] 296 +     } else if height <= consensus::BLOCK_ERA_4 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/global.rs:298:12
[INFO] [stdout]     |
[INFO] [stdout] 298 |     } else if (height <= consensus::BLOCK_ERA_5) {
[INFO] [stdout]     |               ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 298 -     } else if (height <= consensus::BLOCK_ERA_5) {
[INFO] [stdout] 298 +     } else if height <= consensus::BLOCK_ERA_5 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::global`
[INFO] [stdout]   --> src/pow/cuckaroo.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use crate::global;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::global`
[INFO] [stdout]   --> src/pow/cuckatoo.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::global;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:23:48
[INFO] [stdout]     |
[INFO] [stdout] 23  |         $thing.iter().map($mapfn).collect::<Vec<_>>();
[INFO] [stdout]     |                                                      ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pow/cuckatoo.rs:274:15
[INFO] [stdout]     |
[INFO] [stdout] 274 |                 *nonces = map_vec!(nonces, |n| val[*n as usize]);
[INFO] [stdout]     |                           -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map_vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Link`
[INFO] [stdout]  --> src/pow/md5.rs:2:36
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::pow::common::{EdgeType, Link};
[INFO] [stdout]   |                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util`
[INFO] [stdout]  --> src/pow/md5.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::util;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::block::BlockHeader`
[INFO] [stdout]  --> src/pow/progpow.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::core::block::BlockHeader;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ErrorKind`
[INFO] [stdout]  --> src/pow/progpow.rs:7:32
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::pow::error::{Error, ErrorKind};
[INFO] [stdout]   |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::RwLock`
[INFO] [stdout]  --> src/pow/progpow.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::util::RwLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bigint::uint::U256`
[INFO] [stdout]   --> src/pow/progpow.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use bigint::uint::U256;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ErrorKind`
[INFO] [stdout]  --> src/pow/randomx.rs:6:32
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::pow::error::{Error, ErrorKind};
[INFO] [stdout]   |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::RwLock`
[INFO] [stdout]  --> src/pow/randomx.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::util::RwLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FixedLength`
[INFO] [stdout]   --> src/pow/types.rs:32:24
[INFO] [stdout]    |
[INFO] [stdout] 32 | use crate::ser::{self, FixedLength, Readable, Reader, Writeable, Writer};
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::hash::Hash`
[INFO] [stdout]   --> src/pow/types.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | use crate::core::hash::Hash;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `chrono::naive::MAX_DATE`: Use NaiveDate::MAX instead
[INFO] [stdout]   --> src/core/block.rs:20:21
[INFO] [stdout]    |
[INFO] [stdout] 20 | use chrono::naive::{MAX_DATE, MIN_DATE};
[INFO] [stdout]    |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `chrono::naive::MIN_DATE`: Use NaiveDate::MIN instead
[INFO] [stdout]   --> src/core/block.rs:20:31
[INFO] [stdout]    |
[INFO] [stdout] 20 | use chrono::naive::{MAX_DATE, MIN_DATE};
[INFO] [stdout]    |                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `chrono::naive::MAX_DATE`: Use NaiveDate::MAX instead
[INFO] [stdout]    --> src/core/block.rs:321:17
[INFO] [stdout]     |
[INFO] [stdout] 321 |     if timestamp > MAX_DATE.and_hms(0, 0, 0).timestamp()
[INFO] [stdout]     |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `chrono::naive::MIN_DATE`: Use NaiveDate::MIN instead
[INFO] [stdout]    --> src/core/block.rs:322:18
[INFO] [stdout]     |
[INFO] [stdout] 322 |         || timestamp < MIN_DATE.and_hms(0, 0, 0).timestamp()
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/core/block.rs:137:23
[INFO] [stdout]     |
[INFO] [stdout] 137 |     fn read(reader: &mut Reader) -> Result<HeaderEntry, ser::Error> {
[INFO] [stdout]     |                          ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 137 |     fn read(reader: &mut dyn Reader) -> Result<HeaderEntry, ser::Error> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/core/pmmr/backend.rs:56:33
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn leaf_pos_iter(&self) -> Box<Iterator<Item = u64> + '_>;
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn leaf_pos_iter(&self) -> Box<dyn Iterator<Item = u64> + '_>;
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/core/pmmr/rewindable_pmmr.rs:53:31
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn backend(&'a self) -> &Backend<T> {
[INFO] [stdout]    |                                  ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn backend(&'a self) -> &dyn Backend<T> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::DateTime::<Tz>::from_utc`: Use TimeZone::from_utc_datetime() or DateTime::from_naive_utc_and_offset instead
[INFO] [stdout]    --> src/core/block.rs:257:32
[INFO] [stdout]     |
[INFO] [stdout] 257 |             timestamp: DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(0, 0), Utc),
[INFO] [stdout]     |                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/core/block.rs:257:56
[INFO] [stdout]     |
[INFO] [stdout] 257 |             timestamp: DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(0, 0), Utc),
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::NaiveDate::and_hms`: use `and_hms_opt()` instead
[INFO] [stdout]    --> src/core/block.rs:321:26
[INFO] [stdout]     |
[INFO] [stdout] 321 |     if timestamp > MAX_DATE.and_hms(0, 0, 0).timestamp()
[INFO] [stdout]     |                             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::NaiveDateTime::timestamp`: use `.and_utc().timestamp()` instead
[INFO] [stdout]    --> src/core/block.rs:321:43
[INFO] [stdout]     |
[INFO] [stdout] 321 |     if timestamp > MAX_DATE.and_hms(0, 0, 0).timestamp()
[INFO] [stdout]     |                                              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::NaiveDate::and_hms`: use `and_hms_opt()` instead
[INFO] [stdout]    --> src/core/block.rs:322:27
[INFO] [stdout]     |
[INFO] [stdout] 322 |         || timestamp < MIN_DATE.and_hms(0, 0, 0).timestamp()
[INFO] [stdout]     |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::NaiveDateTime::timestamp`: use `.and_utc().timestamp()` instead
[INFO] [stdout]    --> src/core/block.rs:322:44
[INFO] [stdout]     |
[INFO] [stdout] 322 |         || timestamp < MIN_DATE.and_hms(0, 0, 0).timestamp()
[INFO] [stdout]     |                                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::DateTime::<Tz>::from_utc`: Use TimeZone::from_utc_datetime() or DateTime::from_naive_utc_and_offset instead
[INFO] [stdout]    --> src/core/block.rs:338:31
[INFO] [stdout]     |
[INFO] [stdout] 338 |         timestamp: DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(timestamp, 0), Utc),
[INFO] [stdout]     |                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/core/block.rs:338:55
[INFO] [stdout]     |
[INFO] [stdout] 338 |         timestamp: DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(timestamp, 0), Utc),
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::DateTime::<Tz>::from_utc`: Use TimeZone::from_utc_datetime() or DateTime::from_naive_utc_and_offset instead
[INFO] [stdout]    --> src/core/block.rs:676:36
[INFO] [stdout]     |
[INFO] [stdout] 676 |         let timestamp = DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(now, 0), Utc);
[INFO] [stdout]     |                                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/core/block.rs:676:60
[INFO] [stdout]     |
[INFO] [stdout] 676 |         let timestamp = DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(now, 0), Utc);
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::DateTime::<Tz>::from_utc`: Use TimeZone::from_utc_datetime() or DateTime::from_naive_utc_and_offset instead
[INFO] [stdout]    --> src/core/block.rs:725:36
[INFO] [stdout]     |
[INFO] [stdout] 725 |         let timestamp = DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(now, 0), Utc);
[INFO] [stdout]     |                                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/core/block.rs:725:60
[INFO] [stdout]     |
[INFO] [stdout] 725 |         let timestamp = DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(now, 0), Utc);
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/core/foundation.rs:50:68
[INFO] [stdout]    |
[INFO] [stdout] 50 |         Err(why) => panic!("Couldn't create {}: {}", path.display(), why.description()),
[INFO] [stdout]    |                                                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead
[INFO] [stdout]   --> src/genesis.rs:43:18
[INFO] [stdout]    |
[INFO] [stdout] 43 |         timestamp: Utc.ymd(1997, 8, 4).and_hms(0, 0, 0),
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::Date::<Tz>::and_hms`: Use and_hms_opt() instead
[INFO] [stdout]   --> src/genesis.rs:43:34
[INFO] [stdout]    |
[INFO] [stdout] 43 |         timestamp: Utc.ymd(1997, 8, 4).and_hms(0, 0, 0),
[INFO] [stdout]    |                                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead
[INFO] [stdout]   --> src/genesis.rs:68:18
[INFO] [stdout]    |
[INFO] [stdout] 68 |         timestamp: Utc.ymd(2019, 8, 9).and_hms(17, 04, 38),
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::Date::<Tz>::and_hms`: Use and_hms_opt() instead
[INFO] [stdout]   --> src/genesis.rs:68:34
[INFO] [stdout]    |
[INFO] [stdout] 68 |         timestamp: Utc.ymd(2019, 8, 9).and_hms(17, 04, 38),
[INFO] [stdout]    |                                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead
[INFO] [stdout]    --> src/genesis.rs:129:18
[INFO] [stdout]     |
[INFO] [stdout] 129 |         timestamp: Utc.ymd(2019, 8, 9).and_hms(17, 04, 38),
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::Date::<Tz>::and_hms`: Use and_hms_opt() instead
[INFO] [stdout]    --> src/genesis.rs:129:34
[INFO] [stdout]     |
[INFO] [stdout] 129 |         timestamp: Utc.ymd(2019, 8, 9).and_hms(17, 04, 38),
[INFO] [stdout]     |                                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::DateTime::<Tz>::from_utc`: Use TimeZone::from_utc_datetime() or DateTime::from_naive_utc_and_offset instead
[INFO] [stdout]    --> src/pow.rs:147:36
[INFO] [stdout]     |
[INFO] [stdout] 147 |             bh.timestamp = DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(0, 0), Utc);
[INFO] [stdout]     |                                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/pow.rs:147:60
[INFO] [stdout]     |
[INFO] [stdout] 147 |             bh.timestamp = DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(0, 0), Utc);
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]    --> src/consensus.rs:626:27
[INFO] [stdout]     |
[INFO] [stdout] 626 | fn next_cuckoo_difficulty(height: u64, pow: PoWType, diff_data: &Vec<HeaderInfo>) -> u64 {
[INFO] [stdout]     |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]   --> src/core/foundation.rs:63:41
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn get_foundation_tx_offset(index: u64, version: HeaderVersion) -> u64 {
[INFO] [stdout]    |                                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `policy_config`
[INFO] [stdout]    --> src/global.rs:289:6
[INFO] [stdout]     |
[INFO] [stdout] 289 |     let policy_config = POLICY_CONFIG.read();
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_policy_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/pow/cuckaroo.rs:62:3
[INFO] [stdout]    |
[INFO] [stdout] 62 |         height: Option<u64>,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]    --> src/pow/cuckatoo.rs:193:3
[INFO] [stdout]     |
[INFO] [stdout] 193 |         height: Option<u64>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/pow/md5.rs:46:3
[INFO] [stdout]    |
[INFO] [stdout] 46 |         height: Option<u64>,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `header`
[INFO] [stdout]   --> src/pow/progpow.rs:47:26
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_progpow_value(header: &[u8], height: u64, nonce: u64) -> [u8; 32] {
[INFO] [stdout]    |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/pow/progpow.rs:47:41
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_progpow_value(header: &[u8], height: u64, nonce: u64) -> [u8; 32] {
[INFO] [stdout]    |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nonce`
[INFO] [stdout]   --> src/pow/progpow.rs:47:54
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_progpow_value(header: &[u8], height: u64, nonce: u64) -> [u8; 32] {
[INFO] [stdout]    |                                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_nonce`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `proof`
[INFO] [stdout]    --> src/pow/progpow.rs:102:23
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn verify(&mut self, proof: &Proof) -> Result<(), Error> {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_proof`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/pow/randomx.rs:91:3
[INFO] [stdout]    |
[INFO] [stdout] 91 |         height: Option<u64>,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `proof`
[INFO] [stdout]    --> src/pow/randomx.rs:109:23
[INFO] [stdout]     |
[INFO] [stdout] 109 |     fn verify(&mut self, proof: &Proof) -> Result<(), Error> {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_proof`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/pow/types.rs:235:46
[INFO] [stdout]     |
[INFO] [stdout] 235 |         let self_sum: u128 = self.num.iter().map(|(x, y)| *y as u128).sum();
[INFO] [stdout]     |                                                    ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/pow/types.rs:237:48
[INFO] [stdout]     |
[INFO] [stdout] 237 |         let other_sum: u128 = other.num.iter().map(|(x, y)| *y as u128).sum();
[INFO] [stdout]     |                                                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/pow/types.rs:245:46
[INFO] [stdout]     |
[INFO] [stdout] 245 |         let self_sum: u128 = self.num.iter().map(|(x, y)| *y as u128).sum();
[INFO] [stdout]     |                                                    ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/pow/types.rs:247:48
[INFO] [stdout]     |
[INFO] [stdout] 247 |         let other_sum: u128 = other.num.iter().map(|(x, y)| *y as u128).sum();
[INFO] [stdout]     |                                                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mix`
[INFO] [stdout]    --> src/pow/types.rs:493:26
[INFO] [stdout]     |
[INFO] [stdout] 493 |             Proof::ProgPowProof { ref mix } => {
[INFO] [stdout]     |                                   ^^^^^^^ help: try ignoring the field: `mix: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `largest_allotment` is never used
[INFO] [stdout]    --> src/core/block/feijoada.rs:243:4
[INFO] [stdout]     |
[INFO] [stdout] 243 | fn largest_allotment(policy: &Policy) -> PoWType {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_policy` is never used
[INFO] [stdout]    --> src/core/block/feijoada.rs:248:4
[INFO] [stdout]     |
[INFO] [stdout] 248 | fn check_policy(policy: &Policy) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `edge_bits` is never read
[INFO] [stdout]    --> src/pow/common.rs:144:6
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub struct CuckooParams<T>
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub edge_bits: u8,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transform_header` is never used
[INFO] [stdout]   --> src/pow/progpow.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn transform_header(header: &[u8]) -> [u8; 32] {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> src/consensus.rs:175:1
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub const FOUNDATION_LEVY: [u64; 9] = [888, 777, 666, 555, 444, 333, 222, 111, 111];
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:22:9
[INFO] [stdout]     |
[INFO] [stdout] 22  | #![warn(missing_docs)]
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/consensus.rs:542:1
[INFO] [stdout]     |
[INFO] [stdout] 542 | / pub fn next_policy<T>(policy: u8, cursor: T) -> (PoWType, Policy)
[INFO] [stdout] 543 | | where
[INFO] [stdout] 544 | |     T: IntoIterator<Item = Policy>,
[INFO] [stdout]     | |___________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/core.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub mod block_fees;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/core.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub mod foundation;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/core.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Fail, Debug)]
[INFO] [stdout]    |          ^---
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Fail` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_Error`
[INFO] [stdout] 42 | pub enum Error {
[INFO] [stdout]    |          ----- `Error` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/core.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Fail, Debug)]
[INFO] [stdout]    |          ^---
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Display` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_Error`
[INFO] [stdout] 42 | pub enum Error {
[INFO] [stdout]    |          ----- `Error` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/core/block.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub mod feijoada;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/core/block.rs:61:2
[INFO] [stdout]    |
[INFO] [stdout] 61 |     InvalidFoundationOutput,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/core/block.rs:52:39
[INFO] [stdout]    |
[INFO] [stdout] 52 | #[derive(Debug, Clone, Eq, PartialEq, Fail)]
[INFO] [stdout]    |                                       ^---
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       `Fail` is not local
[INFO] [stdout]    |                                       move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_Error`
[INFO] [stdout] 53 | pub enum Error {
[INFO] [stdout]    |          ----- `Error` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/core/block.rs:395:2
[INFO] [stdout]     |
[INFO] [stdout] 395 |     pub fn pre_pow_hash(&self) -> [u8; 32] {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/core/block.rs:431:2
[INFO] [stdout]     |
[INFO] [stdout] 431 |     pub fn overage(&self) -> i64 {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/core/block/feijoada.rs:50:1
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct AllowPolicy {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/block/feijoada.rs:51:2
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub height: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/block/feijoada.rs:52:2
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub value: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a type alias
[INFO] [stdout]   --> src/core/block/feijoada.rs:55:1
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub type AllowedPolicy = Vec<AllowPolicy>;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]   --> src/core/block/feijoada.rs:57:1
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub trait FuzzySearch {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/core/block/feijoada.rs:58:2
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn search(&self, height: u64) -> Option<u64>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/block/feijoada.rs:81:2
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub allowed_policies: AllowedPolicy,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/block/feijoada.rs:82:2
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub policies: Vec<Policy>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/block/feijoada.rs:171:1
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn get_bottles_default() -> Policy {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/block/feijoada.rs:184:1
[INFO] [stdout]     |
[INFO] [stdout] 184 | pub fn next_block_bottles(pow: PoWType, bottle: &Policy) -> Policy {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/block/feijoada.rs:195:1
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub fn is_allowed_policy(allowed_policy: AllowedPolicy, height: u64, policy: u8) -> bool {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/block/feijoada.rs:252:1
[INFO] [stdout]     |
[INFO] [stdout] 252 | pub fn count_beans(bottles: &Policy) -> u32 {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> src/core/block/feijoada.rs:256:1
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub trait Feijoada {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/core/block/feijoada.rs:257:2
[INFO] [stdout]     |
[INFO] [stdout] 257 |     fn choose_algo(policy: &Policy, bottles: &Policy) -> PoWType;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> src/core/block/feijoada.rs:260:1
[INFO] [stdout]     |
[INFO] [stdout] 260 | pub struct Deterministic;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/core/committed.rs:26:39
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Debug, Clone, PartialEq, Eq, Fail, Serialize, Deserialize)]
[INFO] [stdout]    |                                       ^---
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       `Fail` is not local
[INFO] [stdout]    |                                       move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_Error`
[INFO] [stdout] 27 | pub enum Error {
[INFO] [stdout]    |          ----- `Error` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/core/committed.rs:26:39
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Debug, Clone, PartialEq, Eq, Fail, Serialize, Deserialize)]
[INFO] [stdout]    |                                       ^---
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       `Display` is not local
[INFO] [stdout]    |                                       move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_Error`
[INFO] [stdout] 27 | pub enum Error {
[INFO] [stdout]    |          ----- `Error` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> src/global.rs:107:1
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub const CURRENT_HEADER_VERSION: u16 = 6;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> src/global.rs:110:1
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub const MAINNET_FOUNDATION_JSON_SHA256: &str =
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> src/global.rs:117:1
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub const FLOONET_FOUNDATION_JSON_SHA256: &str =
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/global.rs:193:1
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub fn foundation_json_sha256() -> &'static str {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/global.rs:276:1
[INFO] [stdout]     |
[INFO] [stdout] 276 | pub fn add_allowed_policy(height: u64, value: u64) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/global.rs:283:1
[INFO] [stdout]     |
[INFO] [stdout] 283 | pub fn get_allowed_policies() -> Vec<AllowPolicy> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/global.rs:288:1
[INFO] [stdout]     |
[INFO] [stdout] 288 | pub fn get_emitted_policy(height: u64) -> u8 {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/global.rs:305:1
[INFO] [stdout]     |
[INFO] [stdout] 305 | pub fn get_policies(index: u8) -> Option<Policy> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/global.rs:556:1
[INFO] [stdout]     |
[INFO] [stdout] 556 | / pub fn ts_data_to_vector<T>(cursor: T, needed_block_count: u64) -> Vec<HeaderInfo>
[INFO] [stdout] 557 | | where
[INFO] [stdout] 558 | |     T: IntoIterator<Item = HeaderInfo>,
[INFO] [stdout]     | |_______________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/global.rs:610:1
[INFO] [stdout]     |
[INFO] [stdout] 610 | pub fn get_file_sha256(path: &str) -> String {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/libtx/error.rs:29:28
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Clone, Debug, Eq, Fail, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                            ^---
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            `Fail` is not local
[INFO] [stdout]    |                            move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ErrorKind`
[INFO] [stdout] 30 | /// Libwallet error types
[INFO] [stdout] 31 | pub enum ErrorKind {
[INFO] [stdout]    |          --------- `ErrorKind` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/libtx/error.rs:29:28
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Clone, Debug, Eq, Fail, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                            ^---
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            `Display` is not local
[INFO] [stdout]    |                            move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ErrorKind`
[INFO] [stdout] 30 | /// Libwallet error types
[INFO] [stdout] 31 | pub enum ErrorKind {
[INFO] [stdout]    |          --------- `ErrorKind` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/libtx/reward.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | / pub fn output_foundation<K, B>(
[INFO] [stdout] 29 | |     keychain: &K,
[INFO] [stdout] 30 | |     builder: &B,
[INFO] [stdout] 31 | |     key_id: &Identifier,
[INFO] [stdout] ...  |
[INFO] [stdout] 36 | |     K: Keychain,
[INFO] [stdout] 37 | |     B: ProofBuild,
[INFO] [stdout]    | |__________________^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/libtx/mod.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/libtx/reward.rs:151:1
[INFO] [stdout]     |
[INFO] [stdout] 151 | / pub fn output_foundation_proof<K>(
[INFO] [stdout] 152 | |     keychain: &K,
[INFO] [stdout] 153 | |     key_id: &Identifier,
[INFO] [stdout] 154 | |     test_mode: bool,
[INFO] [stdout] ...   |
[INFO] [stdout] 157 | | where
[INFO] [stdout] 158 | |     K: Keychain,
[INFO] [stdout]     | |________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/pow.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub mod progpow;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/pow.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/pow.rs:43:1
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub mod randomx;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/pow/error.rs:26:28
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Clone, Debug, Eq, Fail, PartialEq)]
[INFO] [stdout]    |                            ^---
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            `Fail` is not local
[INFO] [stdout]    |                            move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ErrorKind`
[INFO] [stdout] 27 | /// Libwallet error types
[INFO] [stdout] 28 | pub enum ErrorKind {
[INFO] [stdout]    |          --------- `ErrorKind` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/pow/error.rs:26:28
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Clone, Debug, Eq, Fail, PartialEq)]
[INFO] [stdout]    |                            ^---
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            `Display` is not local
[INFO] [stdout]    |                            move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ErrorKind`
[INFO] [stdout] 27 | /// Libwallet error types
[INFO] [stdout] 28 | pub enum ErrorKind {
[INFO] [stdout]    |          --------- `ErrorKind` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]  --> src/pow/md5.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct MD5Context<T>
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/md5.rs:13:2
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub edge_bits: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/md5.rs:14:2
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub proof_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/md5.rs:15:2
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub max_sols: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/md5.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout] 20 | / pub fn new_md5_ctx<T>(
[INFO] [stdout] 21 | |     edge_bits: u8,
[INFO] [stdout] 22 | |     proof_size: usize,
[INFO] [stdout] 23 | |     max_sols: u32,
[INFO] [stdout] 24 | | ) -> Result<Box<dyn PoWContext<T>>, Error>
[INFO] [stdout] 25 | | where
[INFO] [stdout] 26 | |     T: EdgeType + 'static,
[INFO] [stdout]    | |__________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/progpow.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | / pub fn new_progpow_ctx<T>() -> Result<Box<dyn PoWContext<T>>, Error>
[INFO] [stdout] 23 | |     where
[INFO] [stdout] 24 | |         T: EdgeType + 'static,
[INFO] [stdout]    | |______________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/progpow.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_progpow_value(header: &[u8], height: u64, nonce: u64) -> [u8; 32] {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/pow/progpow.rs:61:1
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct ProgPowContext<T>
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/progpow.rs:65:2
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub header: Vec<u8>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/progpow.rs:66:2
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub nonce: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/progpow.rs:67:2
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub height: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/pow/randomx.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const SEEDHASH_EPOCH_BLOCKS: u64 = 1000;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/pow/randomx.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const SEEDHASH_EPOCH_LAG: u64 = 60;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/randomx.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn rx_epoch_start(epoch_height: u64) -> u64 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/randomx.rs:27:1
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn rx_epoch_end(epoch_height: u64) -> u64 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/randomx.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn rx_next_seed_height(height: u64) -> Option<u64> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/randomx.rs:49:1
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn rx_current_seed_height(height: u64) -> u64 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/pow/randomx.rs:61:1
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct RXContext<T>
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/randomx.rs:65:2
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub seed: [u8; 32],
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/randomx.rs:66:2
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub header: Vec<u8>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/randomx.rs:67:2
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub nonce: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/randomx.rs:71:1
[INFO] [stdout]    |
[INFO] [stdout] 71 | / pub fn new_randomx_ctx<T>(seed: [u8; 32]) -> Result<Box<dyn PoWContext<T>>, Error>
[INFO] [stdout] 72 | |     where
[INFO] [stdout] 73 | |         T: EdgeType + 'static,
[INFO] [stdout]    | |______________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> src/pow/types.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum PoWType {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/pow/types.rs:46:2
[INFO] [stdout]    |
[INFO] [stdout] 46 |     Cuckaroo,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/pow/types.rs:47:2
[INFO] [stdout]    |
[INFO] [stdout] 47 |     Cuckatoo,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/pow/types.rs:48:2
[INFO] [stdout]    |
[INFO] [stdout] 48 |     RandomX,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/pow/types.rs:49:2
[INFO] [stdout]    |
[INFO] [stdout] 49 |     ProgPow,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/pow/types.rs:62:2
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn to_str(&self) -> String {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> src/pow/types.rs:124:1
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub trait DifficultyNumberBasic {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/pow/types.rs:125:2
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn number(v: u64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a type alias
[INFO] [stdout]    --> src/pow/types.rs:128:1
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub type DifficultyNumber = HashMap<PoWType, u64>;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/pow/types.rs:146:2
[INFO] [stdout]     |
[INFO] [stdout] 146 |     pub num: DifficultyNumber,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/pow/types.rs:180:2
[INFO] [stdout]     |
[INFO] [stdout] 180 |     pub fn from_dic_number(num: DifficultyNumber) -> Difficulty {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/pow/types.rs:554:2
[INFO] [stdout]     |
[INFO] [stdout] 554 |     MD5Proof {
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/pow/types.rs:555:3
[INFO] [stdout]     |
[INFO] [stdout] 555 |         proof: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/pow/types.rs:556:3
[INFO] [stdout]     |
[INFO] [stdout] 556 |         edge_bits: u8,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/pow/types.rs:559:2
[INFO] [stdout]     |
[INFO] [stdout] 559 |     RandomXProof {
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/pow/types.rs:560:3
[INFO] [stdout]     |
[INFO] [stdout] 560 |         hash: [u8; 32],
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/pow/types.rs:563:2
[INFO] [stdout]     |
[INFO] [stdout] 563 |     ProgPowProof {
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/pow/types.rs:564:3
[INFO] [stdout]     |
[INFO] [stdout] 564 |         mix: [u8; 32],
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 13s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: bigint v4.4.3, nom v3.2.1, stack_test_epic_core v3.0.3 (/opt/rustwide/workdir), traitobject v0.1.0, typemap v0.3.3
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "a424804f93254adf4fb3882f5e3472b6c08da299fd688e04f46341e044f51f66", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a424804f93254adf4fb3882f5e3472b6c08da299fd688e04f46341e044f51f66", kill_on_drop: false }`
[INFO] [stdout] a424804f93254adf4fb3882f5e3472b6c08da299fd688e04f46341e044f51f66
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+nightly-2024-10-28" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8517970edb0bdbc3cc11edb1c96f828568a07bc509d83dbccf36082c3930dfa1
[INFO] running `Command { std: "docker" "start" "-a" "8517970edb0bdbc3cc11edb1c96f828568a07bc509d83dbccf36082c3930dfa1", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `DifficultyNumber`
[INFO] [stdout]   --> src/consensus.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::pow::{Difficulty, DifficultyNumber, PoWType};
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/consensus.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `error_invalid_pow`
[INFO] [stdout]    --> src/consensus.rs:560:14
[INFO] [stdout]     |
[INFO] [stdout] 560 | macro_rules! error_invalid_pow {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::RwLock`
[INFO] [stdout]   --> src/core/block.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::util::RwLock;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/core/block.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/core/block.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `reward`
[INFO] [stdout]   --> src/core/block.rs:32:53
[INFO] [stdout]    |
[INFO] [stdout] 32 |     self, add_reward_foundation, is_foundation_height, reward, reward_at_height, reward_foundation,
[INFO] [stdout]    |                                                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/macros.rs:78:9
[INFO] [stdout]     |
[INFO] [stdout] 78  |     ( $(r#try!($rdr.$read_call($($val),*))),* )
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/core/block.rs:309:28
[INFO] [stdout]     |
[INFO] [stdout] 309 |     let (height, timestamp) = ser_multiread!(reader, read_u64, read_i64);
[INFO] [stdout]     |                               ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/macros.rs:78:9
[INFO] [stdout]     |
[INFO] [stdout] 78  |     ( $(r#try!($rdr.$read_call($($val),*))),* )
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/core/block.rs:316:43
[INFO] [stdout]     |
[INFO] [stdout] 316 |     let (output_mmr_size, kernel_mmr_size) = ser_multiread!(reader, read_u64, read_u64);
[INFO] [stdout]     |                                              ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/macros.rs:92:8
[INFO] [stdout]     |
[INFO] [stdout] 92  |       $( r#try!($wrtr.$write_call($val)) );*
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/core/block.rs:363:3
[INFO] [stdout]     |
[INFO] [stdout] 363 | /         ser_multiwrite!(
[INFO] [stdout] 364 | |             writer,
[INFO] [stdout] 365 | |             [write_u64, self.height],
[INFO] [stdout] 366 | |             [write_i64, self.timestamp.timestamp()],
[INFO] [stdout] ...   |
[INFO] [stdout] 374 | |             [write_u64, self.kernel_mmr_size]
[INFO] [stdout] 375 | |         );
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:23:48
[INFO] [stdout]     |
[INFO] [stdout] 23  |         $thing.iter().map($mapfn).collect::<Vec<_>>();
[INFO] [stdout]     |                                                      ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/core/block.rs:908:21
[INFO] [stdout]     |
[INFO] [stdout] 908 |                 secp.commit_sum(map_vec!(cb_outs, |x| x.commitment()), vec![over_commit])?;
[INFO] [stdout]     |                                 ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `map_vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/core/committed.rs:128:14
[INFO] [stdout]     |
[INFO] [stdout] 128 |     ) -> Result<((Commitment, Commitment)), Error> {
[INFO] [stdout]     |                 ^                        ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 128 -     ) -> Result<((Commitment, Commitment)), Error> {
[INFO] [stdout] 128 +     ) -> Result<(Commitment, Commitment), Error> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> src/macros.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     ( $(r#try!($rdr.$read_call($($val),*))),* )
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/core/compact_block.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 |             ser_multiread!(reader, read_u64, read_u64, read_u64);
[INFO] [stdout]    |             ---------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/macros.rs:92:8
[INFO] [stdout]     |
[INFO] [stdout] 92  |       $( r#try!($wrtr.$write_call($val)) );*
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/core/compact_block.rs:103:3
[INFO] [stdout]     |
[INFO] [stdout] 103 | /         ser_multiwrite!(
[INFO] [stdout] 104 | |             writer,
[INFO] [stdout] 105 | |             [write_u64, self.out_full.len() as u64],
[INFO] [stdout] 106 | |             [write_u64, self.kern_full.len() as u64],
[INFO] [stdout] 107 | |             [write_u64, self.kern_ids.len() as u64]
[INFO] [stdout] 108 | |         );
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `first_fork_height` and `foundation_height`
[INFO] [stdout]  --> src/core/foundation.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::consensus::{first_fork_height, foundation_height, foundation_index, header_version};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/core/id.rs:77:1
[INFO] [stdout]    |
[INFO] [stdout] 77 | / /// We want to sort short_ids in a canonical and consistent manner so we can
[INFO] [stdout] 78 | | /// verify sort order in the same way we do for full inputs|outputs|kernels
[INFO] [stdout] 79 | | /// themselves.
[INFO] [stdout]    | |_--------------^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: elided lifetime has a name
[INFO] [stdout]   --> src/core/pmmr/pmmr.rs:54:41
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl<'a, T, B> PMMR<'a, T, B>
[INFO] [stdout]    |      -- lifetime `'a` declared here
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn new(backend: &'a mut B) -> PMMR<'_, T, B> {
[INFO] [stdout]    |                                            ^^ this elided lifetime gets resolved as `'a`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(elided_named_lifetimes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: elided lifetime has a name
[INFO] [stdout]   --> src/core/pmmr/pmmr.rs:64:55
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl<'a, T, B> PMMR<'a, T, B>
[INFO] [stdout]    |      -- lifetime `'a` declared here
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn at(backend: &'a mut B, last_pos: u64) -> PMMR<'_, T, B> {
[INFO] [stdout]    |                                                          ^^ this elided lifetime gets resolved as `'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: elided lifetime has a name
[INFO] [stdout]   --> src/core/pmmr/readonly_pmmr.rs:44:45
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl<'a, T, B> ReadonlyPMMR<'a, T, B>
[INFO] [stdout]    |      -- lifetime `'a` declared here
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn new(backend: &'a B) -> ReadonlyPMMR<'_, T, B> {
[INFO] [stdout]    |                                                ^^ this elided lifetime gets resolved as `'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: elided lifetime has a name
[INFO] [stdout]   --> src/core/pmmr/readonly_pmmr.rs:54:59
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl<'a, T, B> ReadonlyPMMR<'a, T, B>
[INFO] [stdout]    |      -- lifetime `'a` declared here
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn at(backend: &'a B, last_pos: u64) -> ReadonlyPMMR<'_, T, B> {
[INFO] [stdout]    |                                                              ^^ this elided lifetime gets resolved as `'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: elided lifetime has a name
[INFO] [stdout]   --> src/core/pmmr/rewindable_pmmr.rs:44:47
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl<'a, T, B> RewindablePMMR<'a, T, B>
[INFO] [stdout]    |      -- lifetime `'a` declared here
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn new(backend: &'a B) -> RewindablePMMR<'_, T, B> {
[INFO] [stdout]    |                                                  ^^ this elided lifetime gets resolved as `'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: elided lifetime has a name
[INFO] [stdout]   --> src/core/pmmr/rewindable_pmmr.rs:53:30
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl<'a, T, B> RewindablePMMR<'a, T, B>
[INFO] [stdout]    |      -- lifetime `'a` declared here
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn backend(&'a self) -> &Backend<T> {
[INFO] [stdout]    |                                 ^ this elided lifetime gets resolved as `'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: elided lifetime has a name
[INFO] [stdout]   --> src/core/pmmr/rewindable_pmmr.rs:59:61
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl<'a, T, B> RewindablePMMR<'a, T, B>
[INFO] [stdout]    |      -- lifetime `'a` declared here
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn at(backend: &'a B, last_pos: u64) -> RewindablePMMR<'_, T, B> {
[INFO] [stdout]    |                                                                ^^ this elided lifetime gets resolved as `'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/core/transaction.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `util::RwLock`
[INFO] [stdout]   --> src/core/transaction.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use util::RwLock;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/macros.rs:92:8
[INFO] [stdout]     |
[INFO] [stdout] 92  |       $( r#try!($wrtr.$write_call($val)) );*
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/core/transaction.rs:518:3
[INFO] [stdout]     |
[INFO] [stdout] 518 | /         ser_multiwrite!(
[INFO] [stdout] 519 | |             writer,
[INFO] [stdout] 520 | |             [write_u64, self.inputs.len() as u64],
[INFO] [stdout] 521 | |             [write_u64, self.outputs.len() as u64],
[INFO] [stdout] 522 | |             [write_u64, self.kernels.len() as u64]
[INFO] [stdout] 523 | |         );
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/macros.rs:78:9
[INFO] [stdout]     |
[INFO] [stdout] 78  |     ( $(r#try!($rdr.$read_call($($val),*))),* )
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/core/transaction.rs:538:4
[INFO] [stdout]     |
[INFO] [stdout] 538 |             ser_multiread!(reader, read_u64, read_u64, read_u64);
[INFO] [stdout]     |             ---------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util`
[INFO] [stdout]   --> src/genesis.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::util;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::secp::constants::SINGLE_BULLET_PROOF_SIZE`
[INFO] [stdout]   --> src/genesis.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::util::secp::constants::SINGLE_BULLET_PROOF_SIZE;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Commitment` and `RangeProof`
[INFO] [stdout]   --> src/genesis.rs:29:35
[INFO] [stdout]    |
[INFO] [stdout] 29 | use crate::util::secp::pedersen::{Commitment, RangeProof};
[INFO] [stdout]    |                                   ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::secp::Signature`
[INFO] [stdout]   --> src/genesis.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use crate::util::secp::Signature;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DIFFICULTY_ADJUST_WINDOW`
[INFO] [stdout]   --> src/global.rs:23:37
[INFO] [stdout]    |
[INFO] [stdout] 23 |     DAY_HEIGHT, DEFAULT_MIN_EDGE_BITS, DIFFICULTY_ADJUST_WINDOW, INITIAL_DIFFICULTY,
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `new_cuckaroo_ctx`
[INFO] [stdout]   --> src/global.rs:27:24
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::pow::{self, new_cuckaroo_ctx, new_cuckatoo_ctx, EdgeType, PoWContext};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/global.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/global.rs:290:5
[INFO] [stdout]     |
[INFO] [stdout] 290 |     if (height <= consensus::BLOCK_ERA_1) {
[INFO] [stdout]     |        ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 290 -     if (height <= consensus::BLOCK_ERA_1) {
[INFO] [stdout] 290 +     if height <= consensus::BLOCK_ERA_1 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/global.rs:292:12
[INFO] [stdout]     |
[INFO] [stdout] 292 |     } else if (height <= consensus::BLOCK_ERA_2) {
[INFO] [stdout]     |               ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 292 -     } else if (height <= consensus::BLOCK_ERA_2) {
[INFO] [stdout] 292 +     } else if height <= consensus::BLOCK_ERA_2 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/global.rs:294:12
[INFO] [stdout]     |
[INFO] [stdout] 294 |     } else if (height <= consensus::BLOCK_ERA_3) {
[INFO] [stdout]     |               ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 294 -     } else if (height <= consensus::BLOCK_ERA_3) {
[INFO] [stdout] 294 +     } else if height <= consensus::BLOCK_ERA_3 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/global.rs:296:12
[INFO] [stdout]     |
[INFO] [stdout] 296 |     } else if (height <= consensus::BLOCK_ERA_4) {
[INFO] [stdout]     |               ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 296 -     } else if (height <= consensus::BLOCK_ERA_4) {
[INFO] [stdout] 296 +     } else if height <= consensus::BLOCK_ERA_4 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/global.rs:298:12
[INFO] [stdout]     |
[INFO] [stdout] 298 |     } else if (height <= consensus::BLOCK_ERA_5) {
[INFO] [stdout]     |               ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 298 -     } else if (height <= consensus::BLOCK_ERA_5) {
[INFO] [stdout] 298 +     } else if height <= consensus::BLOCK_ERA_5 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::global`
[INFO] [stdout]   --> src/pow/cuckaroo.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use crate::global;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::global`
[INFO] [stdout]   --> src/pow/cuckatoo.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::global;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:23:48
[INFO] [stdout]     |
[INFO] [stdout] 23  |         $thing.iter().map($mapfn).collect::<Vec<_>>();
[INFO] [stdout]     |                                                      ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pow/cuckatoo.rs:274:15
[INFO] [stdout]     |
[INFO] [stdout] 274 |                 *nonces = map_vec!(nonces, |n| val[*n as usize]);
[INFO] [stdout]     |                           -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map_vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Link`
[INFO] [stdout]  --> src/pow/md5.rs:2:36
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::pow::common::{EdgeType, Link};
[INFO] [stdout]   |                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util`
[INFO] [stdout]  --> src/pow/md5.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::util;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::block::BlockHeader`
[INFO] [stdout]  --> src/pow/progpow.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::core::block::BlockHeader;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ErrorKind`
[INFO] [stdout]  --> src/pow/progpow.rs:7:32
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::pow::error::{Error, ErrorKind};
[INFO] [stdout]   |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::RwLock`
[INFO] [stdout]  --> src/pow/progpow.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::util::RwLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bigint::uint::U256`
[INFO] [stdout]   --> src/pow/progpow.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use bigint::uint::U256;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ErrorKind`
[INFO] [stdout]  --> src/pow/randomx.rs:6:32
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::pow::error::{Error, ErrorKind};
[INFO] [stdout]   |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::RwLock`
[INFO] [stdout]  --> src/pow/randomx.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::util::RwLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FixedLength`
[INFO] [stdout]   --> src/pow/types.rs:32:24
[INFO] [stdout]    |
[INFO] [stdout] 32 | use crate::ser::{self, FixedLength, Readable, Reader, Writeable, Writer};
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::hash::Hash`
[INFO] [stdout]   --> src/pow/types.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | use crate::core::hash::Hash;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `chrono::naive::MAX_DATE`: Use NaiveDate::MAX instead
[INFO] [stdout]   --> src/core/block.rs:20:21
[INFO] [stdout]    |
[INFO] [stdout] 20 | use chrono::naive::{MAX_DATE, MIN_DATE};
[INFO] [stdout]    |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `chrono::naive::MIN_DATE`: Use NaiveDate::MIN instead
[INFO] [stdout]   --> src/core/block.rs:20:31
[INFO] [stdout]    |
[INFO] [stdout] 20 | use chrono::naive::{MAX_DATE, MIN_DATE};
[INFO] [stdout]    |                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `chrono::naive::MAX_DATE`: Use NaiveDate::MAX instead
[INFO] [stdout]    --> src/core/block.rs:321:17
[INFO] [stdout]     |
[INFO] [stdout] 321 |     if timestamp > MAX_DATE.and_hms(0, 0, 0).timestamp()
[INFO] [stdout]     |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `chrono::naive::MIN_DATE`: Use NaiveDate::MIN instead
[INFO] [stdout]    --> src/core/block.rs:322:18
[INFO] [stdout]     |
[INFO] [stdout] 322 |         || timestamp < MIN_DATE.and_hms(0, 0, 0).timestamp()
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/core/block.rs:137:23
[INFO] [stdout]     |
[INFO] [stdout] 137 |     fn read(reader: &mut Reader) -> Result<HeaderEntry, ser::Error> {
[INFO] [stdout]     |                          ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 137 |     fn read(reader: &mut dyn Reader) -> Result<HeaderEntry, ser::Error> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/core/pmmr/backend.rs:56:33
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn leaf_pos_iter(&self) -> Box<Iterator<Item = u64> + '_>;
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn leaf_pos_iter(&self) -> Box<dyn Iterator<Item = u64> + '_>;
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/core/pmmr/rewindable_pmmr.rs:53:31
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn backend(&'a self) -> &Backend<T> {
[INFO] [stdout]    |                                  ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn backend(&'a self) -> &dyn Backend<T> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::DateTime::<Tz>::from_utc`: Use TimeZone::from_utc_datetime() or DateTime::from_naive_utc_and_offset instead
[INFO] [stdout]    --> src/core/block.rs:257:32
[INFO] [stdout]     |
[INFO] [stdout] 257 |             timestamp: DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(0, 0), Utc),
[INFO] [stdout]     |                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/core/block.rs:257:56
[INFO] [stdout]     |
[INFO] [stdout] 257 |             timestamp: DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(0, 0), Utc),
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::NaiveDate::and_hms`: use `and_hms_opt()` instead
[INFO] [stdout]    --> src/core/block.rs:321:26
[INFO] [stdout]     |
[INFO] [stdout] 321 |     if timestamp > MAX_DATE.and_hms(0, 0, 0).timestamp()
[INFO] [stdout]     |                             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::NaiveDateTime::timestamp`: use `.and_utc().timestamp()` instead
[INFO] [stdout]    --> src/core/block.rs:321:43
[INFO] [stdout]     |
[INFO] [stdout] 321 |     if timestamp > MAX_DATE.and_hms(0, 0, 0).timestamp()
[INFO] [stdout]     |                                              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::NaiveDate::and_hms`: use `and_hms_opt()` instead
[INFO] [stdout]    --> src/core/block.rs:322:27
[INFO] [stdout]     |
[INFO] [stdout] 322 |         || timestamp < MIN_DATE.and_hms(0, 0, 0).timestamp()
[INFO] [stdout]     |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::NaiveDateTime::timestamp`: use `.and_utc().timestamp()` instead
[INFO] [stdout]    --> src/core/block.rs:322:44
[INFO] [stdout]     |
[INFO] [stdout] 322 |         || timestamp < MIN_DATE.and_hms(0, 0, 0).timestamp()
[INFO] [stdout]     |                                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::DateTime::<Tz>::from_utc`: Use TimeZone::from_utc_datetime() or DateTime::from_naive_utc_and_offset instead
[INFO] [stdout]    --> src/core/block.rs:338:31
[INFO] [stdout]     |
[INFO] [stdout] 338 |         timestamp: DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(timestamp, 0), Utc),
[INFO] [stdout]     |                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/core/block.rs:338:55
[INFO] [stdout]     |
[INFO] [stdout] 338 |         timestamp: DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(timestamp, 0), Utc),
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::DateTime::<Tz>::from_utc`: Use TimeZone::from_utc_datetime() or DateTime::from_naive_utc_and_offset instead
[INFO] [stdout]    --> src/core/block.rs:676:36
[INFO] [stdout]     |
[INFO] [stdout] 676 |         let timestamp = DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(now, 0), Utc);
[INFO] [stdout]     |                                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/core/block.rs:676:60
[INFO] [stdout]     |
[INFO] [stdout] 676 |         let timestamp = DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(now, 0), Utc);
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::DateTime::<Tz>::from_utc`: Use TimeZone::from_utc_datetime() or DateTime::from_naive_utc_and_offset instead
[INFO] [stdout]    --> src/core/block.rs:725:36
[INFO] [stdout]     |
[INFO] [stdout] 725 |         let timestamp = DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(now, 0), Utc);
[INFO] [stdout]     |                                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/core/block.rs:725:60
[INFO] [stdout]     |
[INFO] [stdout] 725 |         let timestamp = DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(now, 0), Utc);
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/core/foundation.rs:50:68
[INFO] [stdout]    |
[INFO] [stdout] 50 |         Err(why) => panic!("Couldn't create {}: {}", path.display(), why.description()),
[INFO] [stdout]    |                                                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead
[INFO] [stdout]   --> src/genesis.rs:43:18
[INFO] [stdout]    |
[INFO] [stdout] 43 |         timestamp: Utc.ymd(1997, 8, 4).and_hms(0, 0, 0),
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::Date::<Tz>::and_hms`: Use and_hms_opt() instead
[INFO] [stdout]   --> src/genesis.rs:43:34
[INFO] [stdout]    |
[INFO] [stdout] 43 |         timestamp: Utc.ymd(1997, 8, 4).and_hms(0, 0, 0),
[INFO] [stdout]    |                                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead
[INFO] [stdout]   --> src/genesis.rs:68:18
[INFO] [stdout]    |
[INFO] [stdout] 68 |         timestamp: Utc.ymd(2019, 8, 9).and_hms(17, 04, 38),
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::Date::<Tz>::and_hms`: Use and_hms_opt() instead
[INFO] [stdout]   --> src/genesis.rs:68:34
[INFO] [stdout]    |
[INFO] [stdout] 68 |         timestamp: Utc.ymd(2019, 8, 9).and_hms(17, 04, 38),
[INFO] [stdout]    |                                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead
[INFO] [stdout]    --> src/genesis.rs:129:18
[INFO] [stdout]     |
[INFO] [stdout] 129 |         timestamp: Utc.ymd(2019, 8, 9).and_hms(17, 04, 38),
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::Date::<Tz>::and_hms`: Use and_hms_opt() instead
[INFO] [stdout]    --> src/genesis.rs:129:34
[INFO] [stdout]     |
[INFO] [stdout] 129 |         timestamp: Utc.ymd(2019, 8, 9).and_hms(17, 04, 38),
[INFO] [stdout]     |                                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::DateTime::<Tz>::from_utc`: Use TimeZone::from_utc_datetime() or DateTime::from_naive_utc_and_offset instead
[INFO] [stdout]    --> src/pow.rs:147:36
[INFO] [stdout]     |
[INFO] [stdout] 147 |             bh.timestamp = DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(0, 0), Utc);
[INFO] [stdout]     |                                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/pow.rs:147:60
[INFO] [stdout]     |
[INFO] [stdout] 147 |             bh.timestamp = DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(0, 0), Utc);
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]    --> src/consensus.rs:626:27
[INFO] [stdout]     |
[INFO] [stdout] 626 | fn next_cuckoo_difficulty(height: u64, pow: PoWType, diff_data: &Vec<HeaderInfo>) -> u64 {
[INFO] [stdout]     |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]   --> src/core/foundation.rs:63:41
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn get_foundation_tx_offset(index: u64, version: HeaderVersion) -> u64 {
[INFO] [stdout]    |                                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `policy_config`
[INFO] [stdout]    --> src/global.rs:289:6
[INFO] [stdout]     |
[INFO] [stdout] 289 |     let policy_config = POLICY_CONFIG.read();
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_policy_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/pow/cuckaroo.rs:62:3
[INFO] [stdout]    |
[INFO] [stdout] 62 |         height: Option<u64>,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]    --> src/pow/cuckatoo.rs:193:3
[INFO] [stdout]     |
[INFO] [stdout] 193 |         height: Option<u64>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/pow/md5.rs:46:3
[INFO] [stdout]    |
[INFO] [stdout] 46 |         height: Option<u64>,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `header`
[INFO] [stdout]   --> src/pow/progpow.rs:47:26
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_progpow_value(header: &[u8], height: u64, nonce: u64) -> [u8; 32] {
[INFO] [stdout]    |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/pow/progpow.rs:47:41
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_progpow_value(header: &[u8], height: u64, nonce: u64) -> [u8; 32] {
[INFO] [stdout]    |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nonce`
[INFO] [stdout]   --> src/pow/progpow.rs:47:54
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_progpow_value(header: &[u8], height: u64, nonce: u64) -> [u8; 32] {
[INFO] [stdout]    |                                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_nonce`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `proof`
[INFO] [stdout]    --> src/pow/progpow.rs:102:23
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn verify(&mut self, proof: &Proof) -> Result<(), Error> {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_proof`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/pow/randomx.rs:91:3
[INFO] [stdout]    |
[INFO] [stdout] 91 |         height: Option<u64>,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `proof`
[INFO] [stdout]    --> src/pow/randomx.rs:109:23
[INFO] [stdout]     |
[INFO] [stdout] 109 |     fn verify(&mut self, proof: &Proof) -> Result<(), Error> {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_proof`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/pow/types.rs:235:46
[INFO] [stdout]     |
[INFO] [stdout] 235 |         let self_sum: u128 = self.num.iter().map(|(x, y)| *y as u128).sum();
[INFO] [stdout]     |                                                    ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/pow/types.rs:237:48
[INFO] [stdout]     |
[INFO] [stdout] 237 |         let other_sum: u128 = other.num.iter().map(|(x, y)| *y as u128).sum();
[INFO] [stdout]     |                                                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/pow/types.rs:245:46
[INFO] [stdout]     |
[INFO] [stdout] 245 |         let self_sum: u128 = self.num.iter().map(|(x, y)| *y as u128).sum();
[INFO] [stdout]     |                                                    ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/pow/types.rs:247:48
[INFO] [stdout]     |
[INFO] [stdout] 247 |         let other_sum: u128 = other.num.iter().map(|(x, y)| *y as u128).sum();
[INFO] [stdout]     |                                                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mix`
[INFO] [stdout]    --> src/pow/types.rs:493:26
[INFO] [stdout]     |
[INFO] [stdout] 493 |             Proof::ProgPowProof { ref mix } => {
[INFO] [stdout]     |                                   ^^^^^^^ help: try ignoring the field: `mix: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `largest_allotment` is never used
[INFO] [stdout]    --> src/core/block/feijoada.rs:243:4
[INFO] [stdout]     |
[INFO] [stdout] 243 | fn largest_allotment(policy: &Policy) -> PoWType {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_policy` is never used
[INFO] [stdout]    --> src/core/block/feijoada.rs:248:4
[INFO] [stdout]     |
[INFO] [stdout] 248 | fn check_policy(policy: &Policy) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `edge_bits` is never read
[INFO] [stdout]    --> src/pow/common.rs:144:6
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub struct CuckooParams<T>
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub edge_bits: u8,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transform_header` is never used
[INFO] [stdout]   --> src/pow/progpow.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn transform_header(header: &[u8]) -> [u8; 32] {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> src/consensus.rs:175:1
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub const FOUNDATION_LEVY: [u64; 9] = [888, 777, 666, 555, 444, 333, 222, 111, 111];
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:22:9
[INFO] [stdout]     |
[INFO] [stdout] 22  | #![warn(missing_docs)]
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/consensus.rs:542:1
[INFO] [stdout]     |
[INFO] [stdout] 542 | / pub fn next_policy<T>(policy: u8, cursor: T) -> (PoWType, Policy)
[INFO] [stdout] 543 | | where
[INFO] [stdout] 544 | |     T: IntoIterator<Item = Policy>,
[INFO] [stdout]     | |___________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/core.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub mod block_fees;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/core.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub mod foundation;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/core.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Fail, Debug)]
[INFO] [stdout]    |          ^---
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Fail` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_Error`
[INFO] [stdout] 42 | pub enum Error {
[INFO] [stdout]    |          ----- `Error` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/core.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Fail, Debug)]
[INFO] [stdout]    |          ^---
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Display` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_Error`
[INFO] [stdout] 42 | pub enum Error {
[INFO] [stdout]    |          ----- `Error` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/core/block.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub mod feijoada;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/core/block.rs:61:2
[INFO] [stdout]    |
[INFO] [stdout] 61 |     InvalidFoundationOutput,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/core/block.rs:52:39
[INFO] [stdout]    |
[INFO] [stdout] 52 | #[derive(Debug, Clone, Eq, PartialEq, Fail)]
[INFO] [stdout]    |                                       ^---
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       `Fail` is not local
[INFO] [stdout]    |                                       move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_Error`
[INFO] [stdout] 53 | pub enum Error {
[INFO] [stdout]    |          ----- `Error` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/core/block.rs:395:2
[INFO] [stdout]     |
[INFO] [stdout] 395 |     pub fn pre_pow_hash(&self) -> [u8; 32] {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/core/block.rs:431:2
[INFO] [stdout]     |
[INFO] [stdout] 431 |     pub fn overage(&self) -> i64 {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/core/block/feijoada.rs:50:1
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct AllowPolicy {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/block/feijoada.rs:51:2
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub height: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/block/feijoada.rs:52:2
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub value: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a type alias
[INFO] [stdout]   --> src/core/block/feijoada.rs:55:1
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub type AllowedPolicy = Vec<AllowPolicy>;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]   --> src/core/block/feijoada.rs:57:1
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub trait FuzzySearch {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/core/block/feijoada.rs:58:2
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn search(&self, height: u64) -> Option<u64>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/block/feijoada.rs:81:2
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub allowed_policies: AllowedPolicy,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/block/feijoada.rs:82:2
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub policies: Vec<Policy>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/block/feijoada.rs:171:1
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn get_bottles_default() -> Policy {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/block/feijoada.rs:184:1
[INFO] [stdout]     |
[INFO] [stdout] 184 | pub fn next_block_bottles(pow: PoWType, bottle: &Policy) -> Policy {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/block/feijoada.rs:195:1
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub fn is_allowed_policy(allowed_policy: AllowedPolicy, height: u64, policy: u8) -> bool {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/block/feijoada.rs:252:1
[INFO] [stdout]     |
[INFO] [stdout] 252 | pub fn count_beans(bottles: &Policy) -> u32 {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> src/core/block/feijoada.rs:256:1
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub trait Feijoada {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/core/block/feijoada.rs:257:2
[INFO] [stdout]     |
[INFO] [stdout] 257 |     fn choose_algo(policy: &Policy, bottles: &Policy) -> PoWType;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> src/core/block/feijoada.rs:260:1
[INFO] [stdout]     |
[INFO] [stdout] 260 | pub struct Deterministic;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/core/committed.rs:26:39
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Debug, Clone, PartialEq, Eq, Fail, Serialize, Deserialize)]
[INFO] [stdout]    |                                       ^---
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       `Fail` is not local
[INFO] [stdout]    |                                       move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_Error`
[INFO] [stdout] 27 | pub enum Error {
[INFO] [stdout]    |          ----- `Error` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/core/committed.rs:26:39
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Debug, Clone, PartialEq, Eq, Fail, Serialize, Deserialize)]
[INFO] [stdout]    |                                       ^---
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       `Display` is not local
[INFO] [stdout]    |                                       move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_Error`
[INFO] [stdout] 27 | pub enum Error {
[INFO] [stdout]    |          ----- `Error` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> src/global.rs:107:1
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub const CURRENT_HEADER_VERSION: u16 = 6;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> src/global.rs:110:1
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub const MAINNET_FOUNDATION_JSON_SHA256: &str =
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> src/global.rs:117:1
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub const FLOONET_FOUNDATION_JSON_SHA256: &str =
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/global.rs:193:1
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub fn foundation_json_sha256() -> &'static str {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/global.rs:276:1
[INFO] [stdout]     |
[INFO] [stdout] 276 | pub fn add_allowed_policy(height: u64, value: u64) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/global.rs:283:1
[INFO] [stdout]     |
[INFO] [stdout] 283 | pub fn get_allowed_policies() -> Vec<AllowPolicy> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/global.rs:288:1
[INFO] [stdout]     |
[INFO] [stdout] 288 | pub fn get_emitted_policy(height: u64) -> u8 {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/global.rs:305:1
[INFO] [stdout]     |
[INFO] [stdout] 305 | pub fn get_policies(index: u8) -> Option<Policy> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/global.rs:556:1
[INFO] [stdout]     |
[INFO] [stdout] 556 | / pub fn ts_data_to_vector<T>(cursor: T, needed_block_count: u64) -> Vec<HeaderInfo>
[INFO] [stdout] 557 | | where
[INFO] [stdout] 558 | |     T: IntoIterator<Item = HeaderInfo>,
[INFO] [stdout]     | |_______________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/global.rs:610:1
[INFO] [stdout]     |
[INFO] [stdout] 610 | pub fn get_file_sha256(path: &str) -> String {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/libtx/error.rs:29:28
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Clone, Debug, Eq, Fail, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                            ^---
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            `Fail` is not local
[INFO] [stdout]    |                            move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ErrorKind`
[INFO] [stdout] 30 | /// Libwallet error types
[INFO] [stdout] 31 | pub enum ErrorKind {
[INFO] [stdout]    |          --------- `ErrorKind` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/libtx/error.rs:29:28
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Clone, Debug, Eq, Fail, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                            ^---
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            `Display` is not local
[INFO] [stdout]    |                            move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ErrorKind`
[INFO] [stdout] 30 | /// Libwallet error types
[INFO] [stdout] 31 | pub enum ErrorKind {
[INFO] [stdout]    |          --------- `ErrorKind` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/libtx/reward.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | / pub fn output_foundation<K, B>(
[INFO] [stdout] 29 | |     keychain: &K,
[INFO] [stdout] 30 | |     builder: &B,
[INFO] [stdout] 31 | |     key_id: &Identifier,
[INFO] [stdout] ...  |
[INFO] [stdout] 36 | |     K: Keychain,
[INFO] [stdout] 37 | |     B: ProofBuild,
[INFO] [stdout]    | |__________________^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/libtx/mod.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/libtx/reward.rs:151:1
[INFO] [stdout]     |
[INFO] [stdout] 151 | / pub fn output_foundation_proof<K>(
[INFO] [stdout] 152 | |     keychain: &K,
[INFO] [stdout] 153 | |     key_id: &Identifier,
[INFO] [stdout] 154 | |     test_mode: bool,
[INFO] [stdout] ...   |
[INFO] [stdout] 157 | | where
[INFO] [stdout] 158 | |     K: Keychain,
[INFO] [stdout]     | |________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/pow.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub mod progpow;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/pow.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/pow.rs:43:1
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub mod randomx;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/pow/error.rs:26:28
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Clone, Debug, Eq, Fail, PartialEq)]
[INFO] [stdout]    |                            ^---
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            `Fail` is not local
[INFO] [stdout]    |                            move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ErrorKind`
[INFO] [stdout] 27 | /// Libwallet error types
[INFO] [stdout] 28 | pub enum ErrorKind {
[INFO] [stdout]    |          --------- `ErrorKind` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/pow/error.rs:26:28
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Clone, Debug, Eq, Fail, PartialEq)]
[INFO] [stdout]    |                            ^---
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            `Display` is not local
[INFO] [stdout]    |                            move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ErrorKind`
[INFO] [stdout] 27 | /// Libwallet error types
[INFO] [stdout] 28 | pub enum ErrorKind {
[INFO] [stdout]    |          --------- `ErrorKind` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]  --> src/pow/md5.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct MD5Context<T>
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling stack_test_epic_core v3.0.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/md5.rs:13:2
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub edge_bits: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/md5.rs:14:2
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub proof_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/md5.rs:15:2
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub max_sols: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/md5.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout] 20 | / pub fn new_md5_ctx<T>(
[INFO] [stdout] 21 | |     edge_bits: u8,
[INFO] [stdout] 22 | |     proof_size: usize,
[INFO] [stdout] 23 | |     max_sols: u32,
[INFO] [stdout] 24 | | ) -> Result<Box<dyn PoWContext<T>>, Error>
[INFO] [stdout] 25 | | where
[INFO] [stdout] 26 | |     T: EdgeType + 'static,
[INFO] [stdout]    | |__________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/progpow.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | / pub fn new_progpow_ctx<T>() -> Result<Box<dyn PoWContext<T>>, Error>
[INFO] [stdout] 23 | |     where
[INFO] [stdout] 24 | |         T: EdgeType + 'static,
[INFO] [stdout]    | |______________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/progpow.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_progpow_value(header: &[u8], height: u64, nonce: u64) -> [u8; 32] {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/pow/progpow.rs:61:1
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct ProgPowContext<T>
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/progpow.rs:65:2
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub header: Vec<u8>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/progpow.rs:66:2
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub nonce: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/progpow.rs:67:2
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub height: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/pow/randomx.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const SEEDHASH_EPOCH_BLOCKS: u64 = 1000;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/pow/randomx.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const SEEDHASH_EPOCH_LAG: u64 = 60;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/randomx.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn rx_epoch_start(epoch_height: u64) -> u64 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/randomx.rs:27:1
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn rx_epoch_end(epoch_height: u64) -> u64 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/randomx.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn rx_next_seed_height(height: u64) -> Option<u64> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/randomx.rs:49:1
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn rx_current_seed_height(height: u64) -> u64 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/pow/randomx.rs:61:1
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct RXContext<T>
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/randomx.rs:65:2
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub seed: [u8; 32],
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/randomx.rs:66:2
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub header: Vec<u8>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/randomx.rs:67:2
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub nonce: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/randomx.rs:71:1
[INFO] [stdout]    |
[INFO] [stdout] 71 | / pub fn new_randomx_ctx<T>(seed: [u8; 32]) -> Result<Box<dyn PoWContext<T>>, Error>
[INFO] [stdout] 72 | |     where
[INFO] [stdout] 73 | |         T: EdgeType + 'static,
[INFO] [stdout]    | |______________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> src/pow/types.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum PoWType {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/pow/types.rs:46:2
[INFO] [stdout]    |
[INFO] [stdout] 46 |     Cuckaroo,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/pow/types.rs:47:2
[INFO] [stdout]    |
[INFO] [stdout] 47 |     Cuckatoo,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/pow/types.rs:48:2
[INFO] [stdout]    |
[INFO] [stdout] 48 |     RandomX,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/pow/types.rs:49:2
[INFO] [stdout]    |
[INFO] [stdout] 49 |     ProgPow,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/pow/types.rs:62:2
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn to_str(&self) -> String {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> src/pow/types.rs:124:1
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub trait DifficultyNumberBasic {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/pow/types.rs:125:2
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn number(v: u64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a type alias
[INFO] [stdout]    --> src/pow/types.rs:128:1
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub type DifficultyNumber = HashMap<PoWType, u64>;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/pow/types.rs:146:2
[INFO] [stdout]     |
[INFO] [stdout] 146 |     pub num: DifficultyNumber,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/pow/types.rs:180:2
[INFO] [stdout]     |
[INFO] [stdout] 180 |     pub fn from_dic_number(num: DifficultyNumber) -> Difficulty {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/pow/types.rs:554:2
[INFO] [stdout]     |
[INFO] [stdout] 554 |     MD5Proof {
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/pow/types.rs:555:3
[INFO] [stdout]     |
[INFO] [stdout] 555 |         proof: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/pow/types.rs:556:3
[INFO] [stdout]     |
[INFO] [stdout] 556 |         edge_bits: u8,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/pow/types.rs:559:2
[INFO] [stdout]     |
[INFO] [stdout] 559 |     RandomXProof {
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/pow/types.rs:560:3
[INFO] [stdout]     |
[INFO] [stdout] 560 |         hash: [u8; 32],
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/pow/types.rs:563:2
[INFO] [stdout]     |
[INFO] [stdout] 563 |     ProgPowProof {
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/pow/types.rs:564:3
[INFO] [stdout]     |
[INFO] [stdout] 564 |         mix: [u8; 32],
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use epic_core::core::hash::DefaultHashable;
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use epic_core::core::{Block, BlockHeader, KernelFeatures, Transaction};
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use epic_core::libtx::{
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use epic_core::pow::Difficulty;
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use epic_core::core::hash::DefaultHashable;
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use epic_core::core::{Block, BlockHeader, KernelFeatures, Transaction};
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use epic_core::libtx::{
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use epic_core::pow::Difficulty;
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use epic_core::core::hash::DefaultHashable;
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use epic_core::core::{Block, BlockHeader, KernelFeatures, Transaction};
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use epic_core::libtx::{
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use epic_core::pow::Difficulty;
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use epic_core::core::hash::DefaultHashable;
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use epic_core::core::{Block, BlockHeader, KernelFeatures, Transaction};
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use epic_core::libtx::{
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use epic_core::ser::{self, FixedLength, PMMRable, Readable, Reader, Writeable, Writer};
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use epic_core::pow::Difficulty;
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use epic_core::ser::{self, FixedLength, PMMRable, Readable, Reader, Writeable, Writer};
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use epic_core::core::hash::DefaultHashable;
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use epic_core::core::{Block, BlockHeader, KernelFeatures, Transaction};
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use epic_core::libtx::{
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use epic_core::pow::Difficulty;
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use epic_core::core::hash::DefaultHashable;
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use epic_core::core::{Block, BlockHeader, KernelFeatures, Transaction};
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use epic_core::libtx::{
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use epic_core::pow::Difficulty;
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use epic_core::ser::{self, FixedLength, PMMRable, Readable, Reader, Writeable, Writer};
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use epic_core::ser::{self, FixedLength, PMMRable, Readable, Reader, Writeable, Writer};
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use epic_core::ser::{self, FixedLength, PMMRable, Readable, Reader, Writeable, Writer};
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `epic_core`
[INFO] [stdout]   --> tests/consensus.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use epic_core as core;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ no external crate `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/common.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use epic_core::ser::{self, FixedLength, PMMRable, Readable, Reader, Writeable, Writer};
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `epic_core`
[INFO] [stdout]   --> tests/common.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use epic_core::ser::{self, FixedLength, PMMRable, Readable, Reader, Writeable, Writer};
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `epic_core`
[INFO] [stdout]   --> tests/common.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use epic_core::ser::{self, FixedLength, PMMRable, Readable, Reader, Writeable, Writer};
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `epic_core`
[INFO] [stdout]   --> tests/pmmr.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use epic_core as core;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ no external crate `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `epic_core`
[INFO] [stdout]   --> tests/common.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use epic_core::ser::{self, FixedLength, PMMRable, Readable, Reader, Writeable, Writer};
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `epic_core`
[INFO] [stdout]   --> tests/transaction.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use epic_core as core;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ no external crate `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `epic_core`
[INFO] [stdout]   --> tests/common.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use epic_core::ser::{self, FixedLength, PMMRable, Readable, Reader, Writeable, Writer};
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `epic_core`
[INFO] [stdout]   --> tests/vec_backend.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use epic_core as core;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ no external crate `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `epic_core`
[INFO] [stdout]   --> tests/core.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use epic_core as core;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ no external crate `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `epic_core`
[INFO] [stdout]   --> tests/common.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use epic_core::ser::{self, FixedLength, PMMRable, Readable, Reader, Writeable, Writer};
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `epic_core`
[INFO] [stdout]   --> tests/block.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use epic_core::global::ChainTypes;
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `epic_core`
[INFO] [stdout]   --> tests/block.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | use epic_core as core;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ no external crate `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `epic_core`
[INFO] [stdout]   --> tests/common.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use epic_core::ser::{self, FixedLength, PMMRable, Readable, Reader, Writeable, Writer};
[INFO] [stdout]    |     ^^^^^^^^^ use of undeclared crate or module `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `epic_core`
[INFO] [stdout]   --> tests/merkle_proof.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use epic_core as core;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ no external crate `epic_core`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> tests/core.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `util::RwLock`
[INFO] [stdout]   --> tests/core.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use util::RwLock;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> tests/block.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `util::RwLock`
[INFO] [stdout]   --> tests/block.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use util::RwLock;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `stack_test_epic_core` (test "transaction") due to 7 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `stack_test_epic_core` (test "pmmr") due to 7 previous errors
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `stack_test_epic_core` (test "vec_backend") due to 7 previous errors
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `stack_test_epic_core` (test "merkle_proof") due to 7 previous errors
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `stack_test_epic_core` (test "block") due to 8 previous errors; 2 warnings emitted
[INFO] [stderr] error: could not compile `stack_test_epic_core` (test "core") due to 7 previous errors; 2 warnings emitted
[INFO] [stdout] warning: unused import: `DifficultyNumber`
[INFO] [stdout]   --> src/consensus.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::pow::{Difficulty, DifficultyNumber, PoWType};
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/consensus.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `error_invalid_pow`
[INFO] [stdout]    --> src/consensus.rs:560:14
[INFO] [stdout]     |
[INFO] [stdout] 560 | macro_rules! error_invalid_pow {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::RwLock`
[INFO] [stdout]   --> src/core/block.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::util::RwLock;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/core/block.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/core/block.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `reward`
[INFO] [stdout]   --> src/core/block.rs:32:53
[INFO] [stdout]    |
[INFO] [stdout] 32 |     self, add_reward_foundation, is_foundation_height, reward, reward_at_height, reward_foundation,
[INFO] [stdout]    |                                                        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/macros.rs:78:9
[INFO] [stdout]     |
[INFO] [stdout] 78  |     ( $(r#try!($rdr.$read_call($($val),*))),* )
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/core/block.rs:309:28
[INFO] [stdout]     |
[INFO] [stdout] 309 |     let (height, timestamp) = ser_multiread!(reader, read_u64, read_i64);
[INFO] [stdout]     |                               ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/macros.rs:78:9
[INFO] [stdout]     |
[INFO] [stdout] 78  |     ( $(r#try!($rdr.$read_call($($val),*))),* )
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/core/block.rs:316:43
[INFO] [stdout]     |
[INFO] [stdout] 316 |     let (output_mmr_size, kernel_mmr_size) = ser_multiread!(reader, read_u64, read_u64);
[INFO] [stdout]     |                                              ------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/macros.rs:92:8
[INFO] [stdout]     |
[INFO] [stdout] 92  |       $( r#try!($wrtr.$write_call($val)) );*
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/core/block.rs:363:3
[INFO] [stdout]     |
[INFO] [stdout] 363 | /         ser_multiwrite!(
[INFO] [stdout] 364 | |             writer,
[INFO] [stdout] 365 | |             [write_u64, self.height],
[INFO] [stdout] 366 | |             [write_i64, self.timestamp.timestamp()],
[INFO] [stdout] ...   |
[INFO] [stdout] 374 | |             [write_u64, self.kernel_mmr_size]
[INFO] [stdout] 375 | |         );
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:23:48
[INFO] [stdout]     |
[INFO] [stdout] 23  |         $thing.iter().map($mapfn).collect::<Vec<_>>();
[INFO] [stdout]     |                                                      ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/core/block.rs:908:21
[INFO] [stdout]     |
[INFO] [stdout] 908 |                 secp.commit_sum(map_vec!(cb_outs, |x| x.commitment()), vec![over_commit])?;
[INFO] [stdout]     |                                 ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `map_vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/core/committed.rs:128:14
[INFO] [stdout]     |
[INFO] [stdout] 128 |     ) -> Result<((Commitment, Commitment)), Error> {
[INFO] [stdout]     |                 ^                        ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 128 -     ) -> Result<((Commitment, Commitment)), Error> {
[INFO] [stdout] 128 +     ) -> Result<(Commitment, Commitment), Error> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]   --> src/macros.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 78 |     ( $(r#try!($rdr.$read_call($($val),*))),* )
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/core/compact_block.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 |             ser_multiread!(reader, read_u64, read_u64, read_u64);
[INFO] [stdout]    |             ---------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/macros.rs:92:8
[INFO] [stdout]     |
[INFO] [stdout] 92  |       $( r#try!($wrtr.$write_call($val)) );*
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/core/compact_block.rs:103:3
[INFO] [stdout]     |
[INFO] [stdout] 103 | /         ser_multiwrite!(
[INFO] [stdout] 104 | |             writer,
[INFO] [stdout] 105 | |             [write_u64, self.out_full.len() as u64],
[INFO] [stdout] 106 | |             [write_u64, self.kern_full.len() as u64],
[INFO] [stdout] 107 | |             [write_u64, self.kern_ids.len() as u64]
[INFO] [stdout] 108 | |         );
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `first_fork_height` and `foundation_height`
[INFO] [stdout]  --> src/core/foundation.rs:1:24
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::consensus::{first_fork_height, foundation_height, foundation_index, header_version};
[INFO] [stdout]   |                        ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/core/id.rs:77:1
[INFO] [stdout]    |
[INFO] [stdout] 77 | / /// We want to sort short_ids in a canonical and consistent manner so we can
[INFO] [stdout] 78 | | /// verify sort order in the same way we do for full inputs|outputs|kernels
[INFO] [stdout] 79 | | /// themselves.
[INFO] [stdout]    | |_--------------^
[INFO] [stdout]    |   |
[INFO] [stdout]    |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: elided lifetime has a name
[INFO] [stdout]   --> src/core/pmmr/pmmr.rs:54:41
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl<'a, T, B> PMMR<'a, T, B>
[INFO] [stdout]    |      -- lifetime `'a` declared here
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn new(backend: &'a mut B) -> PMMR<'_, T, B> {
[INFO] [stdout]    |                                            ^^ this elided lifetime gets resolved as `'a`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(elided_named_lifetimes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: elided lifetime has a name
[INFO] [stdout]   --> src/core/pmmr/pmmr.rs:64:55
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl<'a, T, B> PMMR<'a, T, B>
[INFO] [stdout]    |      -- lifetime `'a` declared here
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn at(backend: &'a mut B, last_pos: u64) -> PMMR<'_, T, B> {
[INFO] [stdout]    |                                                          ^^ this elided lifetime gets resolved as `'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: elided lifetime has a name
[INFO] [stdout]   --> src/core/pmmr/readonly_pmmr.rs:44:45
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl<'a, T, B> ReadonlyPMMR<'a, T, B>
[INFO] [stdout]    |      -- lifetime `'a` declared here
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn new(backend: &'a B) -> ReadonlyPMMR<'_, T, B> {
[INFO] [stdout]    |                                                ^^ this elided lifetime gets resolved as `'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: elided lifetime has a name
[INFO] [stdout]   --> src/core/pmmr/readonly_pmmr.rs:54:59
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl<'a, T, B> ReadonlyPMMR<'a, T, B>
[INFO] [stdout]    |      -- lifetime `'a` declared here
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn at(backend: &'a B, last_pos: u64) -> ReadonlyPMMR<'_, T, B> {
[INFO] [stdout]    |                                                              ^^ this elided lifetime gets resolved as `'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: elided lifetime has a name
[INFO] [stdout]   --> src/core/pmmr/rewindable_pmmr.rs:44:47
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl<'a, T, B> RewindablePMMR<'a, T, B>
[INFO] [stdout]    |      -- lifetime `'a` declared here
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn new(backend: &'a B) -> RewindablePMMR<'_, T, B> {
[INFO] [stdout]    |                                                  ^^ this elided lifetime gets resolved as `'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: elided lifetime has a name
[INFO] [stdout]   --> src/core/pmmr/rewindable_pmmr.rs:53:30
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl<'a, T, B> RewindablePMMR<'a, T, B>
[INFO] [stdout]    |      -- lifetime `'a` declared here
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn backend(&'a self) -> &Backend<T> {
[INFO] [stdout]    |                                 ^ this elided lifetime gets resolved as `'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: elided lifetime has a name
[INFO] [stdout]   --> src/core/pmmr/rewindable_pmmr.rs:59:61
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl<'a, T, B> RewindablePMMR<'a, T, B>
[INFO] [stdout]    |      -- lifetime `'a` declared here
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn at(backend: &'a B, last_pos: u64) -> RewindablePMMR<'_, T, B> {
[INFO] [stdout]    |                                                                ^^ this elided lifetime gets resolved as `'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/core/transaction.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `util::RwLock`
[INFO] [stdout]   --> src/core/transaction.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 | use util::RwLock;
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/macros.rs:92:8
[INFO] [stdout]     |
[INFO] [stdout] 92  |       $( r#try!($wrtr.$write_call($val)) );*
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/core/transaction.rs:518:3
[INFO] [stdout]     |
[INFO] [stdout] 518 | /         ser_multiwrite!(
[INFO] [stdout] 519 | |             writer,
[INFO] [stdout] 520 | |             [write_u64, self.inputs.len() as u64],
[INFO] [stdout] 521 | |             [write_u64, self.outputs.len() as u64],
[INFO] [stdout] 522 | |             [write_u64, self.kernels.len() as u64]
[INFO] [stdout] 523 | |         );
[INFO] [stdout]     | |_________- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiwrite` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `r#try`: use the `?` operator instead
[INFO] [stdout]    --> src/macros.rs:78:9
[INFO] [stdout]     |
[INFO] [stdout] 78  |     ( $(r#try!($rdr.$read_call($($val),*))),* )
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/core/transaction.rs:538:4
[INFO] [stdout]     |
[INFO] [stdout] 538 |             ser_multiread!(reader, read_u64, read_u64, read_u64);
[INFO] [stdout]     |             ---------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `ser_multiread` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util`
[INFO] [stdout]   --> src/genesis.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::util;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::secp::constants::SINGLE_BULLET_PROOF_SIZE`
[INFO] [stdout]   --> src/genesis.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::util::secp::constants::SINGLE_BULLET_PROOF_SIZE;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Commitment` and `RangeProof`
[INFO] [stdout]   --> src/genesis.rs:29:35
[INFO] [stdout]    |
[INFO] [stdout] 29 | use crate::util::secp::pedersen::{Commitment, RangeProof};
[INFO] [stdout]    |                                   ^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::secp::Signature`
[INFO] [stdout]   --> src/genesis.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use crate::util::secp::Signature;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DIFFICULTY_ADJUST_WINDOW`
[INFO] [stdout]   --> src/global.rs:23:37
[INFO] [stdout]    |
[INFO] [stdout] 23 |     DAY_HEIGHT, DEFAULT_MIN_EDGE_BITS, DIFFICULTY_ADJUST_WINDOW, INITIAL_DIFFICULTY,
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `new_cuckaroo_ctx`
[INFO] [stdout]   --> src/global.rs:27:24
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::pow::{self, new_cuckaroo_ctx, new_cuckatoo_ctx, EdgeType, PoWContext};
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]   --> src/global.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | use std::collections::HashMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/global.rs:290:5
[INFO] [stdout]     |
[INFO] [stdout] 290 |     if (height <= consensus::BLOCK_ERA_1) {
[INFO] [stdout]     |        ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 290 -     if (height <= consensus::BLOCK_ERA_1) {
[INFO] [stdout] 290 +     if height <= consensus::BLOCK_ERA_1 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/global.rs:292:12
[INFO] [stdout]     |
[INFO] [stdout] 292 |     } else if (height <= consensus::BLOCK_ERA_2) {
[INFO] [stdout]     |               ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 292 -     } else if (height <= consensus::BLOCK_ERA_2) {
[INFO] [stdout] 292 +     } else if height <= consensus::BLOCK_ERA_2 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/global.rs:294:12
[INFO] [stdout]     |
[INFO] [stdout] 294 |     } else if (height <= consensus::BLOCK_ERA_3) {
[INFO] [stdout]     |               ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 294 -     } else if (height <= consensus::BLOCK_ERA_3) {
[INFO] [stdout] 294 +     } else if height <= consensus::BLOCK_ERA_3 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/global.rs:296:12
[INFO] [stdout]     |
[INFO] [stdout] 296 |     } else if (height <= consensus::BLOCK_ERA_4) {
[INFO] [stdout]     |               ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 296 -     } else if (height <= consensus::BLOCK_ERA_4) {
[INFO] [stdout] 296 +     } else if height <= consensus::BLOCK_ERA_4 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/global.rs:298:12
[INFO] [stdout]     |
[INFO] [stdout] 298 |     } else if (height <= consensus::BLOCK_ERA_5) {
[INFO] [stdout]     |               ^                                ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 298 -     } else if (height <= consensus::BLOCK_ERA_5) {
[INFO] [stdout] 298 +     } else if height <= consensus::BLOCK_ERA_5 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]    --> src/libtx/build.rs:249:6
[INFO] [stdout]     |
[INFO] [stdout] 249 |     use std::sync::Arc;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `util::RwLock`
[INFO] [stdout]    --> src/libtx/build.rs:250:6
[INFO] [stdout]     |
[INFO] [stdout] 250 |     use util::RwLock;
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::global`
[INFO] [stdout]   --> src/pow/cuckaroo.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use crate::global;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::global`
[INFO] [stdout]   --> src/pow/cuckatoo.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::global;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/macros.rs:23:48
[INFO] [stdout]     |
[INFO] [stdout] 23  |         $thing.iter().map($mapfn).collect::<Vec<_>>();
[INFO] [stdout]     |                                                      ^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pow/cuckatoo.rs:274:15
[INFO] [stdout]     |
[INFO] [stdout] 274 |                 *nonces = map_vec!(nonces, |n| val[*n as usize]);
[INFO] [stdout]     |                           -------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `map_vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Link`
[INFO] [stdout]  --> src/pow/md5.rs:2:36
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::pow::common::{EdgeType, Link};
[INFO] [stdout]   |                                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util`
[INFO] [stdout]  --> src/pow/md5.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::util;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::block::BlockHeader`
[INFO] [stdout]  --> src/pow/progpow.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::core::block::BlockHeader;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ErrorKind`
[INFO] [stdout]  --> src/pow/progpow.rs:7:32
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::pow::error::{Error, ErrorKind};
[INFO] [stdout]   |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::RwLock`
[INFO] [stdout]  --> src/pow/progpow.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::util::RwLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bigint::uint::U256`
[INFO] [stdout]   --> src/pow/progpow.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use bigint::uint::U256;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ErrorKind`
[INFO] [stdout]  --> src/pow/randomx.rs:6:32
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::pow::error::{Error, ErrorKind};
[INFO] [stdout]   |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::RwLock`
[INFO] [stdout]  --> src/pow/randomx.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::util::RwLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FixedLength`
[INFO] [stdout]   --> src/pow/types.rs:32:24
[INFO] [stdout]    |
[INFO] [stdout] 32 | use crate::ser::{self, FixedLength, Readable, Reader, Writeable, Writer};
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::core::hash::Hash`
[INFO] [stdout]   --> src/pow/types.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | use crate::core::hash::Hash;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HeaderInfo` in this scope
[INFO] [stdout]   --> tests/consensus.rs:77:32
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn repeat(interval: u64, diff: HeaderInfo, len: u64, cur_time: Option<u64>) -> Vec<HeaderInfo> {
[INFO] [stdout]    |                                ^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 15 + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HeaderInfo` in this scope
[INFO] [stdout]   --> tests/consensus.rs:77:84
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn repeat(interval: u64, diff: HeaderInfo, len: u64, cur_time: Option<u64>) -> Vec<HeaderInfo> {
[INFO] [stdout]    |                                                                                    ^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 15 + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `HeaderInfo`
[INFO] [stdout]   --> tests/consensus.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 |             HeaderInfo::new(
[INFO] [stdout]    |             ^^^^^^^^^^ use of undeclared type `HeaderInfo`
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]    |
[INFO] [stdout] 15 + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HeaderInfo` in this scope
[INFO] [stdout]    --> tests/consensus.rs:102:40
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn create_chain_sim(diff: u64) -> Vec<(HeaderInfo, DiffStats)> {
[INFO] [stdout]     |                                        ^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `HeaderInfo`
[INFO] [stdout]    --> tests/consensus.rs:108:24
[INFO] [stdout]     |
[INFO] [stdout] 108 |     let return_vec = vec![HeaderInfo::from_ts_diff(
[INFO] [stdout]     |                           ^^^^^^^^^^ use of undeclared type `HeaderInfo`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `HeaderInfo`
[INFO] [stdout]    --> tests/consensus.rs:114:3
[INFO] [stdout]     |
[INFO] [stdout] 114 |         HeaderInfo::from_ts_diff(Utc::now().timestamp() as u64, Difficulty::from_num(diff)),
[INFO] [stdout]     |         ^^^^^^^^^^ use of undeclared type `HeaderInfo`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HeaderInfo` in this scope
[INFO] [stdout]    --> tests/consensus.rs:119:35
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn get_diff_stats(chain_sim: &Vec<HeaderInfo>) -> DiffStats {
[INFO] [stdout]     |                                   ^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HeaderInfo` in this scope
[INFO] [stdout]    --> tests/consensus.rs:122:23
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let last_blocks: Vec<HeaderInfo> =
[INFO] [stdout]     |                          ^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DIFFICULTY_ADJUST_WINDOW` in this scope
[INFO] [stdout]    --> tests/consensus.rs:123:64
[INFO] [stdout]     |
[INFO] [stdout] 123 |         global::difficulty_data_to_vector(diff_iter.iter().cloned(), DIFFICULTY_ADJUST_WINDOW);
[INFO] [stdout]     |                                                                      ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::DIFFICULTY_ADJUST_WINDOW;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HeaderInfo` in this scope
[INFO] [stdout]    --> tests/consensus.rs:134:22
[INFO] [stdout]     |
[INFO] [stdout] 134 |     let sum_blocks: Vec<HeaderInfo> =
[INFO] [stdout]     |                         ^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DIFFICULTY_ADJUST_WINDOW` in this scope
[INFO] [stdout]    --> tests/consensus.rs:135:64
[INFO] [stdout]     |
[INFO] [stdout] 135 |         global::difficulty_data_to_vector(diff_iter.iter().cloned(), DIFFICULTY_ADJUST_WINDOW)
[INFO] [stdout]     |                                                                      ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::DIFFICULTY_ADJUST_WINDOW;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DIFFICULTY_ADJUST_WINDOW` in this scope
[INFO] [stdout]    --> tests/consensus.rs:137:10
[INFO] [stdout]     |
[INFO] [stdout] 137 |             .take(DIFFICULTY_ADJUST_WINDOW as usize)
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::DIFFICULTY_ADJUST_WINDOW;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DIFFICULTY_ADJUST_WINDOW` in this scope
[INFO] [stdout]    --> tests/consensus.rs:183:41
[INFO] [stdout]     |
[INFO] [stdout] 183 |         average_block_time: block_time_sum / (DIFFICULTY_ADJUST_WINDOW),
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::DIFFICULTY_ADJUST_WINDOW;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DIFFICULTY_ADJUST_WINDOW` in this scope
[INFO] [stdout]    --> tests/consensus.rs:184:41
[INFO] [stdout]     |
[INFO] [stdout] 184 |         average_difficulty: block_diff_sum / (DIFFICULTY_ADJUST_WINDOW),
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::DIFFICULTY_ADJUST_WINDOW;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DIFFICULTY_ADJUST_WINDOW` in this scope
[INFO] [stdout]    --> tests/consensus.rs:185:16
[INFO] [stdout]     |
[INFO] [stdout] 185 |         window_size: DIFFICULTY_ADJUST_WINDOW,
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::DIFFICULTY_ADJUST_WINDOW;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HeaderInfo` in this scope
[INFO] [stdout]    --> tests/consensus.rs:198:18
[INFO] [stdout]     |
[INFO] [stdout] 198 |     chain_sim: Vec<(HeaderInfo, DiffStats)>,
[INFO] [stdout]     |                     ^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HeaderInfo` in this scope
[INFO] [stdout]    --> tests/consensus.rs:199:11
[INFO] [stdout]     |
[INFO] [stdout] 199 | ) -> Vec<(HeaderInfo, DiffStats)> {
[INFO] [stdout]     |           ^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HeaderInfo` in this scope
[INFO] [stdout]    --> tests/consensus.rs:201:28
[INFO] [stdout]     |
[INFO] [stdout] 201 |     let mut return_chain: Vec<HeaderInfo> = chain_sim.clone().iter().map(|e| e.0.clone()).collect();
[INFO] [stdout]     |                               ^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `next_difficulty` in this scope
[INFO] [stdout]    --> tests/consensus.rs:203:13
[INFO] [stdout]     |
[INFO] [stdout] 203 |     let diff = next_difficulty(1, PoWType::Cuckatoo, return_chain.clone());
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::next_difficulty;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `HeaderInfo`
[INFO] [stdout]    --> tests/consensus.rs:206:25
[INFO] [stdout]     |
[INFO] [stdout] 206 |     return_chain.insert(0, HeaderInfo::from_ts_diff(time, diff.difficulty.clone()));
[INFO] [stdout]     |                            ^^^^^^^^^^ use of undeclared type `HeaderInfo`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `HeaderInfo`
[INFO] [stdout]    --> tests/consensus.rs:210:4
[INFO] [stdout]     |
[INFO] [stdout] 210 |         (HeaderInfo::from_ts_diff(time, diff.difficulty), diff_stats),
[INFO] [stdout]     |          ^^^^^^^^^^ use of undeclared type `HeaderInfo`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HeaderInfo` in this scope
[INFO] [stdout]    --> tests/consensus.rs:218:18
[INFO] [stdout]     |
[INFO] [stdout] 218 |     chain_sim: Vec<(HeaderInfo, DiffStats)>,
[INFO] [stdout]     |                     ^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HeaderInfo` in this scope
[INFO] [stdout]    --> tests/consensus.rs:220:11
[INFO] [stdout]     |
[INFO] [stdout] 220 | ) -> Vec<(HeaderInfo, DiffStats)> {
[INFO] [stdout]     |           ^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HeaderInfo` in this scope
[INFO] [stdout]    --> tests/consensus.rs:230:36
[INFO] [stdout]     |
[INFO] [stdout] 230 | fn print_chain_sim(chain_sim: Vec<(HeaderInfo, DiffStats)>) {
[INFO] [stdout]     |                                    ^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DIFFICULTY_ADJUST_WINDOW` in this scope
[INFO] [stdout]    --> tests/consensus.rs:236:43
[INFO] [stdout]     |
[INFO] [stdout] 236 |     println!("DIFFICULTY_ADJUST_WINDOW: {}", DIFFICULTY_ADJUST_WINDOW);
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::DIFFICULTY_ADJUST_WINDOW;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `BLOCK_TIME_WINDOW` in this scope
[INFO] [stdout]    --> tests/consensus.rs:237:36
[INFO] [stdout]     |
[INFO] [stdout] 237 |     println!("BLOCK_TIME_WINDOW: {}", BLOCK_TIME_WINDOW);
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::BLOCK_TIME_WINDOW;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `CLAMP_FACTOR` in this scope
[INFO] [stdout]    --> tests/consensus.rs:238:31
[INFO] [stdout]     |
[INFO] [stdout] 238 |     println!("CLAMP_FACTOR: {}", CLAMP_FACTOR);
[INFO] [stdout]     |                                  ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::CLAMP_FACTOR;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DIFFICULTY_DAMP_FACTOR` in this scope
[INFO] [stdout]    --> tests/consensus.rs:239:30
[INFO] [stdout]     |
[INFO] [stdout] 239 |     println!("DAMP_FACTOR: {}", DIFFICULTY_DAMP_FACTOR);
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::DIFFICULTY_DAMP_FACTOR;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `HeaderInfo` in this scope
[INFO] [stdout]    --> tests/consensus.rs:270:70
[INFO] [stdout]     |
[INFO] [stdout] 270 | fn repeat_offs(from: u64, interval: u64, diff: u64, len: u64) -> Vec<HeaderInfo> {
[INFO] [stdout]     |                                                                      ^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `HeaderInfo`
[INFO] [stdout]    --> tests/consensus.rs:273:3
[INFO] [stdout]     |
[INFO] [stdout] 273 |         HeaderInfo::from_ts_diff(1, Difficulty::from_num(diff)),
[INFO] [stdout]     |         ^^^^^^^^^^ use of undeclared type `HeaderInfo`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DIFFICULTY_ADJUST_WINDOW` in this scope
[INFO] [stdout]    --> tests/consensus.rs:312:21
[INFO] [stdout]     |
[INFO] [stdout] 312 |     let just_enough = (DIFFICULTY_ADJUST_WINDOW) as usize;
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::DIFFICULTY_ADJUST_WINDOW;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `HeaderInfo`
[INFO] [stdout]    --> tests/consensus.rs:361:15
[INFO] [stdout]     |
[INFO] [stdout] 361 |     let mut hi = HeaderInfo::from_diff_scaling(diff_min.clone(), AR_SCALE_DAMP_FACTOR as u32);
[INFO] [stdout]     |                  ^^^^^^^^^^ use of undeclared type `HeaderInfo`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `AR_SCALE_DAMP_FACTOR` in this scope
[INFO] [stdout]    --> tests/consensus.rs:361:63
[INFO] [stdout]     |
[INFO] [stdout] 361 |     let mut hi = HeaderInfo::from_diff_scaling(diff_min.clone(), AR_SCALE_DAMP_FACTOR as u32);
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::AR_SCALE_DAMP_FACTOR;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `next_difficulty` in this scope
[INFO] [stdout]    --> tests/consensus.rs:363:15
[INFO] [stdout]     |
[INFO] [stdout] 363 |     let hinext = next_difficulty(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::next_difficulty;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `BLOCK_TIME_SEC` in this scope
[INFO] [stdout]    --> tests/consensus.rs:367:4
[INFO] [stdout]     |
[INFO] [stdout] 367 |             BLOCK_TIME_SEC / 4,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::BLOCK_TIME_SEC;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DIFFICULTY_ADJUST_WINDOW` in this scope
[INFO] [stdout]    --> tests/consensus.rs:369:4
[INFO] [stdout]     |
[INFO] [stdout] 369 |             DIFFICULTY_ADJUST_WINDOW,
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::DIFFICULTY_ADJUST_WINDOW;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `MIN_DIFFICULTY` in this scope
[INFO] [stdout]    --> tests/consensus.rs:380:39
[INFO] [stdout]     |
[INFO] [stdout] 380 |     assert_ne!(hinext.secondary_scaling, MIN_DIFFICULTY as u32);
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::MIN_DIFFICULTY;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DIFFICULTY_ADJUST_WINDOW` in this scope
[INFO] [stdout]    --> tests/consensus.rs:383:20
[INFO] [stdout]     |
[INFO] [stdout] 383 |     let just_enough = DIFFICULTY_ADJUST_WINDOW + 1;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::DIFFICULTY_ADJUST_WINDOW;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `next_difficulty` in this scope
[INFO] [stdout]    --> tests/consensus.rs:386:3
[INFO] [stdout]     |
[INFO] [stdout] 386 |         next_difficulty(
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::next_difficulty;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `BLOCK_TIME_SEC` in this scope
[INFO] [stdout]    --> tests/consensus.rs:389:11
[INFO] [stdout]     |
[INFO] [stdout] 389 |             repeat(BLOCK_TIME_SEC, hi.clone(), just_enough, None)
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::BLOCK_TIME_SEC;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `next_difficulty` in this scope
[INFO] [stdout]    --> tests/consensus.rs:398:3
[INFO] [stdout]     |
[INFO] [stdout] 398 |         next_difficulty(
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::next_difficulty;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `HeaderInfo`
[INFO] [stdout]    --> tests/consensus.rs:401:9
[INFO] [stdout]     |
[INFO] [stdout] 401 |             vec![HeaderInfo::from_ts_diff(42, hi.difficulty)]
[INFO] [stdout]     |                  ^^^^^^^^^^ use of undeclared type `HeaderInfo`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DIFFICULTY_ADJUST_WINDOW` in this scope
[INFO] [stdout]    --> tests/consensus.rs:410:12
[INFO] [stdout]     |
[INFO] [stdout] 410 |     let sec = DIFFICULTY_ADJUST_WINDOW / 2;
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::DIFFICULTY_ADJUST_WINDOW;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `BLOCK_TIME_SEC` in this scope
[INFO] [stdout]    --> tests/consensus.rs:411:22
[INFO] [stdout]     |
[INFO] [stdout] 411 |     let mut s1 = repeat(BLOCK_TIME_SEC, hi.clone(), sec, Some(cur_time));
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::BLOCK_TIME_SEC;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `BLOCK_TIME_SEC` in this scope
[INFO] [stdout]    --> tests/consensus.rs:413:21
[INFO] [stdout]     |
[INFO] [stdout] 413 |         cur_time + (sec * BLOCK_TIME_SEC) as u64,
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::BLOCK_TIME_SEC;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `BLOCK_TIME_SEC` in this scope
[INFO] [stdout]    --> tests/consensus.rs:414:3
[INFO] [stdout]     |
[INFO] [stdout] 414 |         BLOCK_TIME_SEC,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::BLOCK_TIME_SEC;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DIFFICULTY_ADJUST_WINDOW` in this scope
[INFO] [stdout]    --> tests/consensus.rs:416:3
[INFO] [stdout]     |
[INFO] [stdout] 416 |         DIFFICULTY_ADJUST_WINDOW / 2,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::DIFFICULTY_ADJUST_WINDOW;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `next_difficulty` in this scope
[INFO] [stdout]    --> tests/consensus.rs:420:3
[INFO] [stdout]     |
[INFO] [stdout] 420 |         next_difficulty(1, PoWType::Cuckatoo, s2)
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::next_difficulty;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `next_difficulty` in this scope
[INFO] [stdout]    --> tests/consensus.rs:429:3
[INFO] [stdout]     |
[INFO] [stdout] 429 |         next_difficulty(
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::next_difficulty;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `next_difficulty` in this scope
[INFO] [stdout]    --> tests/consensus.rs:439:3
[INFO] [stdout]     |
[INFO] [stdout] 439 |         next_difficulty(
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::next_difficulty;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `next_difficulty` in this scope
[INFO] [stdout]    --> tests/consensus.rs:451:3
[INFO] [stdout]     |
[INFO] [stdout] 451 |         next_difficulty(
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::next_difficulty;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `next_difficulty` in this scope
[INFO] [stdout]    --> tests/consensus.rs:461:3
[INFO] [stdout]     |
[INFO] [stdout] 461 |         next_difficulty(
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::next_difficulty;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `next_difficulty` in this scope
[INFO] [stdout]    --> tests/consensus.rs:471:3
[INFO] [stdout]     |
[INFO] [stdout] 471 |         next_difficulty(
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::next_difficulty;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `next_difficulty` in this scope
[INFO] [stdout]    --> tests/consensus.rs:483:3
[INFO] [stdout]     |
[INFO] [stdout] 483 |         next_difficulty(
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::next_difficulty;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `next_difficulty` in this scope
[INFO] [stdout]    --> tests/consensus.rs:495:3
[INFO] [stdout]     |
[INFO] [stdout] 495 |         next_difficulty(
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::next_difficulty;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `next_difficulty` in this scope
[INFO] [stdout]    --> tests/consensus.rs:505:3
[INFO] [stdout]     |
[INFO] [stdout] 505 |         next_difficulty(
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::next_difficulty;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `next_difficulty` in this scope
[INFO] [stdout]    --> tests/consensus.rs:518:3
[INFO] [stdout]     |
[INFO] [stdout] 518 |         next_difficulty(
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::next_difficulty;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:536:14
[INFO] [stdout]     |
[INFO] [stdout] 536 |         assert_eq!(secondary_pow_ratio(1), 90);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:537:14
[INFO] [stdout]     |
[INFO] [stdout] 537 |         assert_eq!(secondary_pow_ratio(89), 90);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:538:14
[INFO] [stdout]     |
[INFO] [stdout] 538 |         assert_eq!(secondary_pow_ratio(90), 90);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:539:14
[INFO] [stdout]     |
[INFO] [stdout] 539 |         assert_eq!(secondary_pow_ratio(91), 90);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:540:14
[INFO] [stdout]     |
[INFO] [stdout] 540 |         assert_eq!(secondary_pow_ratio(179), 90);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:541:14
[INFO] [stdout]     |
[INFO] [stdout] 541 |         assert_eq!(secondary_pow_ratio(180), 90);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:542:14
[INFO] [stdout]     |
[INFO] [stdout] 542 |         assert_eq!(secondary_pow_ratio(181), 90);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:545:14
[INFO] [stdout]     |
[INFO] [stdout] 545 |         assert_eq!(secondary_pow_ratio(one_week - 1), 90);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:546:14
[INFO] [stdout]     |
[INFO] [stdout] 546 |         assert_eq!(secondary_pow_ratio(one_week), 90);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:547:14
[INFO] [stdout]     |
[INFO] [stdout] 547 |         assert_eq!(secondary_pow_ratio(one_week + 1), 90);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:550:14
[INFO] [stdout]     |
[INFO] [stdout] 550 |         assert_eq!(secondary_pow_ratio(two_weeks - 1), 89);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:551:14
[INFO] [stdout]     |
[INFO] [stdout] 551 |         assert_eq!(secondary_pow_ratio(two_weeks), 89);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:552:14
[INFO] [stdout]     |
[INFO] [stdout] 552 |         assert_eq!(secondary_pow_ratio(two_weeks + 1), 89);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:555:14
[INFO] [stdout]     |
[INFO] [stdout] 555 |         assert_eq!(secondary_pow_ratio(t4_fork_height - 1), 85);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:556:14
[INFO] [stdout]     |
[INFO] [stdout] 556 |         assert_eq!(secondary_pow_ratio(t4_fork_height), 85);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:557:14
[INFO] [stdout]     |
[INFO] [stdout] 557 |         assert_eq!(secondary_pow_ratio(t4_fork_height + 1), 85);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:560:14
[INFO] [stdout]     |
[INFO] [stdout] 560 |         assert_eq!(secondary_pow_ratio(one_year), 45);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:563:14
[INFO] [stdout]     |
[INFO] [stdout] 563 |         assert_eq!(secondary_pow_ratio(ninety_one_weeks - 1), 12);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:564:14
[INFO] [stdout]     |
[INFO] [stdout] 564 |         assert_eq!(secondary_pow_ratio(ninety_one_weeks), 12);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:565:14
[INFO] [stdout]     |
[INFO] [stdout] 565 |         assert_eq!(secondary_pow_ratio(ninety_one_weeks + 1), 12);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:568:14
[INFO] [stdout]     |
[INFO] [stdout] 568 |         assert_eq!(secondary_pow_ratio(two_year - 1), 1);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:569:14
[INFO] [stdout]     |
[INFO] [stdout] 569 |         assert_eq!(secondary_pow_ratio(two_year), 0);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:570:14
[INFO] [stdout]     |
[INFO] [stdout] 570 |         assert_eq!(secondary_pow_ratio(two_year + 1), 0);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:578:14
[INFO] [stdout]     |
[INFO] [stdout] 578 |         assert_eq!(secondary_pow_ratio(1), 90);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:579:14
[INFO] [stdout]     |
[INFO] [stdout] 579 |         assert_eq!(secondary_pow_ratio(89), 90);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:580:14
[INFO] [stdout]     |
[INFO] [stdout] 580 |         assert_eq!(secondary_pow_ratio(90), 90);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:581:14
[INFO] [stdout]     |
[INFO] [stdout] 581 |         assert_eq!(secondary_pow_ratio(91), 90);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:582:14
[INFO] [stdout]     |
[INFO] [stdout] 582 |         assert_eq!(secondary_pow_ratio(179), 90);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:583:14
[INFO] [stdout]     |
[INFO] [stdout] 583 |         assert_eq!(secondary_pow_ratio(180), 90);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:584:14
[INFO] [stdout]     |
[INFO] [stdout] 584 |         assert_eq!(secondary_pow_ratio(181), 90);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:587:14
[INFO] [stdout]     |
[INFO] [stdout] 587 |         assert_eq!(secondary_pow_ratio(one_week - 1), 90);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:588:14
[INFO] [stdout]     |
[INFO] [stdout] 588 |         assert_eq!(secondary_pow_ratio(one_week), 90);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:589:14
[INFO] [stdout]     |
[INFO] [stdout] 589 |         assert_eq!(secondary_pow_ratio(one_week + 1), 90);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:592:14
[INFO] [stdout]     |
[INFO] [stdout] 592 |         assert_eq!(secondary_pow_ratio(two_weeks - 1), 89);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:593:14
[INFO] [stdout]     |
[INFO] [stdout] 593 |         assert_eq!(secondary_pow_ratio(two_weeks), 89);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:594:14
[INFO] [stdout]     |
[INFO] [stdout] 594 |         assert_eq!(secondary_pow_ratio(two_weeks + 1), 89);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:597:14
[INFO] [stdout]     |
[INFO] [stdout] 597 |         assert_eq!(secondary_pow_ratio(t4_fork_height - 1), 85);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:598:14
[INFO] [stdout]     |
[INFO] [stdout] 598 |         assert_eq!(secondary_pow_ratio(t4_fork_height), 85);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:599:14
[INFO] [stdout]     |
[INFO] [stdout] 599 |         assert_eq!(secondary_pow_ratio(t4_fork_height + 1), 85);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:602:14
[INFO] [stdout]     |
[INFO] [stdout] 602 |         assert_eq!(secondary_pow_ratio(one_year), 45);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:605:14
[INFO] [stdout]     |
[INFO] [stdout] 605 |         assert_eq!(secondary_pow_ratio(ninety_one_weeks - 1), 12);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:606:14
[INFO] [stdout]     |
[INFO] [stdout] 606 |         assert_eq!(secondary_pow_ratio(ninety_one_weeks), 12);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:607:14
[INFO] [stdout]     |
[INFO] [stdout] 607 |         assert_eq!(secondary_pow_ratio(ninety_one_weeks + 1), 12);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:610:14
[INFO] [stdout]     |
[INFO] [stdout] 610 |         assert_eq!(secondary_pow_ratio(two_year - 1), 1);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:611:14
[INFO] [stdout]     |
[INFO] [stdout] 611 |         assert_eq!(secondary_pow_ratio(two_year), 0);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_ratio` in this scope
[INFO] [stdout]    --> tests/consensus.rs:612:14
[INFO] [stdout]     |
[INFO] [stdout] 612 |         assert_eq!(secondary_pow_ratio(two_year + 1), 0);
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_ratio;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `DIFFICULTY_ADJUST_WINDOW` in this scope
[INFO] [stdout]    --> tests/consensus.rs:618:15
[INFO] [stdout]     |
[INFO] [stdout] 618 |     let window = DIFFICULTY_ADJUST_WINDOW;
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::DIFFICULTY_ADJUST_WINDOW;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `HeaderInfo`
[INFO] [stdout]    --> tests/consensus.rs:619:15
[INFO] [stdout]     |
[INFO] [stdout] 619 |     let mut hi = HeaderInfo::from_diff_scaling(Difficulty::from_num(10), 100);
[INFO] [stdout]     |                  ^^^^^^^^^^ use of undeclared type `HeaderInfo`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_scaling` in this scope
[INFO] [stdout]    --> tests/consensus.rs:630:4
[INFO] [stdout]     |
[INFO] [stdout] 630 |             secondary_pow_scaling(1, &(0..window).map(|_| hi.clone()).collect::<Vec<_>>()),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_scaling;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_scaling` in this scope
[INFO] [stdout]    --> tests/consensus.rs:636:4
[INFO] [stdout]     |
[INFO] [stdout] 636 |             secondary_pow_scaling(1, &(0..window).map(|_| hi.clone()).collect::<Vec<_>>()),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_scaling;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_scaling` in this scope
[INFO] [stdout]    --> tests/consensus.rs:641:4
[INFO] [stdout]     |
[INFO] [stdout] 641 |             secondary_pow_scaling(
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_scaling;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `YEAR_HEIGHT` in this scope
[INFO] [stdout]    --> tests/consensus.rs:642:9
[INFO] [stdout]     |
[INFO] [stdout] 642 |                 2 * YEAR_HEIGHT * 83 / 90,
[INFO] [stdout]     |                     ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::YEAR_HEIGHT;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `HeaderInfo`
[INFO] [stdout]    --> tests/consensus.rs:649:4
[INFO] [stdout]     |
[INFO] [stdout] 649 |             HeaderInfo::from_diff_scaling(Difficulty::from_num(10), MIN_AR_SCALE as u32);
[INFO] [stdout]     |             ^^^^^^^^^^ use of undeclared type `HeaderInfo`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `MIN_AR_SCALE` in this scope
[INFO] [stdout]    --> tests/consensus.rs:649:60
[INFO] [stdout]     |
[INFO] [stdout] 649 |             HeaderInfo::from_diff_scaling(Difficulty::from_num(10), MIN_AR_SCALE as u32);
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::MIN_AR_SCALE;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_scaling` in this scope
[INFO] [stdout]    --> tests/consensus.rs:652:4
[INFO] [stdout]     |
[INFO] [stdout] 652 |             secondary_pow_scaling(
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_scaling;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `YEAR_HEIGHT` in this scope
[INFO] [stdout]    --> tests/consensus.rs:653:9
[INFO] [stdout]     |
[INFO] [stdout] 653 |                 2 * YEAR_HEIGHT,
[INFO] [stdout]     |                     ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::YEAR_HEIGHT;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `MIN_AR_SCALE` in this scope
[INFO] [stdout]    --> tests/consensus.rs:656:4
[INFO] [stdout]     |
[INFO] [stdout] 656 |             MIN_AR_SCALE as u32
[INFO] [stdout]     |             ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::MIN_AR_SCALE;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `HeaderInfo`
[INFO] [stdout]    --> tests/consensus.rs:659:24
[INFO] [stdout]     |
[INFO] [stdout] 659 |         let mut primary_hi = HeaderInfo::from_diff_scaling(Difficulty::from_num(10), 50);
[INFO] [stdout]     |                              ^^^^^^^^^^ use of undeclared type `HeaderInfo`
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this struct
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::HeaderInfo;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_scaling` in this scope
[INFO] [stdout]    --> tests/consensus.rs:662:4
[INFO] [stdout]     |
[INFO] [stdout] 662 |             secondary_pow_scaling(
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_scaling;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_scaling` in this scope
[INFO] [stdout]    --> tests/consensus.rs:673:4
[INFO] [stdout]     |
[INFO] [stdout] 673 |             secondary_pow_scaling(
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_scaling;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `secondary_pow_scaling` in this scope
[INFO] [stdout]    --> tests/consensus.rs:684:4
[INFO] [stdout]     |
[INFO] [stdout] 684 |             secondary_pow_scaling(
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::secondary_pow_scaling;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `valid_header_version` in this scope
[INFO] [stdout]    --> tests/consensus.rs:699:11
[INFO] [stdout]     |
[INFO] [stdout] 699 |     assert!(!valid_header_version(199, HeaderVersion(6)));
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::valid_header_version;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `valid_header_version` in this scope
[INFO] [stdout]    --> tests/consensus.rs:700:10
[INFO] [stdout]     |
[INFO] [stdout] 700 |     assert!(valid_header_version(200, HeaderVersion(7)));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::valid_header_version;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `valid_header_version` in this scope
[INFO] [stdout]    --> tests/consensus.rs:701:10
[INFO] [stdout]     |
[INFO] [stdout] 701 |     assert!(valid_header_version(YEAR_HEIGHT / 2 - 1, HeaderVersion(7)));
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::valid_header_version;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `YEAR_HEIGHT` in this scope
[INFO] [stdout]    --> tests/consensus.rs:701:31
[INFO] [stdout]     |
[INFO] [stdout] 701 |     assert!(valid_header_version(YEAR_HEIGHT / 2 - 1, HeaderVersion(7)));
[INFO] [stdout]     |                                  ^^^^^^^^^^^ not found in this scope
[INFO] [stdout]     |
[INFO] [stdout] help: consider importing this constant
[INFO] [stdout]     |
[INFO] [stdout] 15  + use stack_test_epic_core::consensus::YEAR_HEIGHT;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `chrono::naive::MAX_DATE`: Use NaiveDate::MAX instead
[INFO] [stdout]   --> src/core/block.rs:20:21
[INFO] [stdout]    |
[INFO] [stdout] 20 | use chrono::naive::{MAX_DATE, MIN_DATE};
[INFO] [stdout]    |                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `chrono::naive::MIN_DATE`: Use NaiveDate::MIN instead
[INFO] [stdout]   --> src/core/block.rs:20:31
[INFO] [stdout]    |
[INFO] [stdout] 20 | use chrono::naive::{MAX_DATE, MIN_DATE};
[INFO] [stdout]    |                               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `chrono::naive::MAX_DATE`: Use NaiveDate::MAX instead
[INFO] [stdout]    --> src/core/block.rs:321:17
[INFO] [stdout]     |
[INFO] [stdout] 321 |     if timestamp > MAX_DATE.and_hms(0, 0, 0).timestamp()
[INFO] [stdout]     |                    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `chrono::naive::MIN_DATE`: Use NaiveDate::MIN instead
[INFO] [stdout]    --> src/core/block.rs:322:18
[INFO] [stdout]     |
[INFO] [stdout] 322 |         || timestamp < MIN_DATE.and_hms(0, 0, 0).timestamp()
[INFO] [stdout]     |                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/core/block.rs:137:23
[INFO] [stdout]     |
[INFO] [stdout] 137 |     fn read(reader: &mut Reader) -> Result<HeaderEntry, ser::Error> {
[INFO] [stdout]     |                          ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 137 |     fn read(reader: &mut dyn Reader) -> Result<HeaderEntry, ser::Error> {
[INFO] [stdout]     |                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/core/pmmr/backend.rs:56:33
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn leaf_pos_iter(&self) -> Box<Iterator<Item = u64> + '_>;
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 56 |     fn leaf_pos_iter(&self) -> Box<dyn Iterator<Item = u64> + '_>;
[INFO] [stdout]    |                                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/core/pmmr/rewindable_pmmr.rs:53:31
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn backend(&'a self) -> &Backend<T> {
[INFO] [stdout]    |                                  ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub fn backend(&'a self) -> &dyn Backend<T> {
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0412, E0425, E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0412`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `stack_test_epic_core` (test "consensus") due to 123 previous errors
[INFO] [stdout] warning: use of deprecated associated function `chrono::DateTime::<Tz>::from_utc`: Use TimeZone::from_utc_datetime() or DateTime::from_naive_utc_and_offset instead
[INFO] [stdout]    --> src/core/block.rs:257:32
[INFO] [stdout]     |
[INFO] [stdout] 257 |             timestamp: DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(0, 0), Utc),
[INFO] [stdout]     |                                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/core/block.rs:257:56
[INFO] [stdout]     |
[INFO] [stdout] 257 |             timestamp: DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(0, 0), Utc),
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::NaiveDate::and_hms`: use `and_hms_opt()` instead
[INFO] [stdout]    --> src/core/block.rs:321:26
[INFO] [stdout]     |
[INFO] [stdout] 321 |     if timestamp > MAX_DATE.and_hms(0, 0, 0).timestamp()
[INFO] [stdout]     |                             ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::NaiveDateTime::timestamp`: use `.and_utc().timestamp()` instead
[INFO] [stdout]    --> src/core/block.rs:321:43
[INFO] [stdout]     |
[INFO] [stdout] 321 |     if timestamp > MAX_DATE.and_hms(0, 0, 0).timestamp()
[INFO] [stdout]     |                                              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::NaiveDate::and_hms`: use `and_hms_opt()` instead
[INFO] [stdout]    --> src/core/block.rs:322:27
[INFO] [stdout]     |
[INFO] [stdout] 322 |         || timestamp < MIN_DATE.and_hms(0, 0, 0).timestamp()
[INFO] [stdout]     |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::NaiveDateTime::timestamp`: use `.and_utc().timestamp()` instead
[INFO] [stdout]    --> src/core/block.rs:322:44
[INFO] [stdout]     |
[INFO] [stdout] 322 |         || timestamp < MIN_DATE.and_hms(0, 0, 0).timestamp()
[INFO] [stdout]     |                                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::DateTime::<Tz>::from_utc`: Use TimeZone::from_utc_datetime() or DateTime::from_naive_utc_and_offset instead
[INFO] [stdout]    --> src/core/block.rs:338:31
[INFO] [stdout]     |
[INFO] [stdout] 338 |         timestamp: DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(timestamp, 0), Utc),
[INFO] [stdout]     |                                     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/core/block.rs:338:55
[INFO] [stdout]     |
[INFO] [stdout] 338 |         timestamp: DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(timestamp, 0), Utc),
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::DateTime::<Tz>::from_utc`: Use TimeZone::from_utc_datetime() or DateTime::from_naive_utc_and_offset instead
[INFO] [stdout]    --> src/core/block.rs:676:36
[INFO] [stdout]     |
[INFO] [stdout] 676 |         let timestamp = DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(now, 0), Utc);
[INFO] [stdout]     |                                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/core/block.rs:676:60
[INFO] [stdout]     |
[INFO] [stdout] 676 |         let timestamp = DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(now, 0), Utc);
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::DateTime::<Tz>::from_utc`: Use TimeZone::from_utc_datetime() or DateTime::from_naive_utc_and_offset instead
[INFO] [stdout]    --> src/core/block.rs:725:36
[INFO] [stdout]     |
[INFO] [stdout] 725 |         let timestamp = DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(now, 0), Utc);
[INFO] [stdout]     |                                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/core/block.rs:725:60
[INFO] [stdout]     |
[INFO] [stdout] 725 |         let timestamp = DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(now, 0), Utc);
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/core/foundation.rs:50:68
[INFO] [stdout]    |
[INFO] [stdout] 50 |         Err(why) => panic!("Couldn't create {}: {}", path.display(), why.description()),
[INFO] [stdout]    |                                                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead
[INFO] [stdout]   --> src/genesis.rs:43:18
[INFO] [stdout]    |
[INFO] [stdout] 43 |         timestamp: Utc.ymd(1997, 8, 4).and_hms(0, 0, 0),
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::Date::<Tz>::and_hms`: Use and_hms_opt() instead
[INFO] [stdout]   --> src/genesis.rs:43:34
[INFO] [stdout]    |
[INFO] [stdout] 43 |         timestamp: Utc.ymd(1997, 8, 4).and_hms(0, 0, 0),
[INFO] [stdout]    |                                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead
[INFO] [stdout]   --> src/genesis.rs:68:18
[INFO] [stdout]    |
[INFO] [stdout] 68 |         timestamp: Utc.ymd(2019, 8, 9).and_hms(17, 04, 38),
[INFO] [stdout]    |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::Date::<Tz>::and_hms`: Use and_hms_opt() instead
[INFO] [stdout]   --> src/genesis.rs:68:34
[INFO] [stdout]    |
[INFO] [stdout] 68 |         timestamp: Utc.ymd(2019, 8, 9).and_hms(17, 04, 38),
[INFO] [stdout]    |                                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::ymd`: use `with_ymd_and_hms()` instead
[INFO] [stdout]    --> src/genesis.rs:129:18
[INFO] [stdout]     |
[INFO] [stdout] 129 |         timestamp: Utc.ymd(2019, 8, 9).and_hms(17, 04, 38),
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::Date::<Tz>::and_hms`: Use and_hms_opt() instead
[INFO] [stdout]    --> src/genesis.rs:129:34
[INFO] [stdout]     |
[INFO] [stdout] 129 |         timestamp: Utc.ymd(2019, 8, 9).and_hms(17, 04, 38),
[INFO] [stdout]     |                                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::DateTime::<Tz>::from_utc`: Use TimeZone::from_utc_datetime() or DateTime::from_naive_utc_and_offset instead
[INFO] [stdout]    --> src/pow.rs:147:36
[INFO] [stdout]     |
[INFO] [stdout] 147 |             bh.timestamp = DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(0, 0), Utc);
[INFO] [stdout]     |                                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `DateTime::from_timestamp` instead
[INFO] [stdout]    --> src/pow.rs:147:60
[INFO] [stdout]     |
[INFO] [stdout] 147 |             bh.timestamp = DateTime::<Utc>::from_utc(NaiveDateTime::from_timestamp(0, 0), Utc);
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]    --> src/consensus.rs:626:27
[INFO] [stdout]     |
[INFO] [stdout] 626 | fn next_cuckoo_difficulty(height: u64, pow: PoWType, diff_data: &Vec<HeaderInfo>) -> u64 {
[INFO] [stdout]     |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]   --> src/core/foundation.rs:63:41
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn get_foundation_tx_offset(index: u64, version: HeaderVersion) -> u64 {
[INFO] [stdout]    |                                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `policy_config`
[INFO] [stdout]    --> src/global.rs:289:6
[INFO] [stdout]     |
[INFO] [stdout] 289 |     let policy_config = POLICY_CONFIG.read();
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_policy_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/pow/cuckaroo.rs:62:3
[INFO] [stdout]    |
[INFO] [stdout] 62 |         height: Option<u64>,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]    --> src/pow/cuckatoo.rs:193:3
[INFO] [stdout]     |
[INFO] [stdout] 193 |         height: Option<u64>,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/pow/md5.rs:46:3
[INFO] [stdout]    |
[INFO] [stdout] 46 |         height: Option<u64>,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `header`
[INFO] [stdout]   --> src/pow/progpow.rs:47:26
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_progpow_value(header: &[u8], height: u64, nonce: u64) -> [u8; 32] {
[INFO] [stdout]    |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/pow/progpow.rs:47:41
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_progpow_value(header: &[u8], height: u64, nonce: u64) -> [u8; 32] {
[INFO] [stdout]    |                                         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nonce`
[INFO] [stdout]   --> src/pow/progpow.rs:47:54
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_progpow_value(header: &[u8], height: u64, nonce: u64) -> [u8; 32] {
[INFO] [stdout]    |                                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_nonce`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `proof`
[INFO] [stdout]    --> src/pow/progpow.rs:102:23
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn verify(&mut self, proof: &Proof) -> Result<(), Error> {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_proof`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/pow/randomx.rs:91:3
[INFO] [stdout]    |
[INFO] [stdout] 91 |         height: Option<u64>,
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `proof`
[INFO] [stdout]    --> src/pow/randomx.rs:109:23
[INFO] [stdout]     |
[INFO] [stdout] 109 |     fn verify(&mut self, proof: &Proof) -> Result<(), Error> {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_proof`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/pow/types.rs:235:46
[INFO] [stdout]     |
[INFO] [stdout] 235 |         let self_sum: u128 = self.num.iter().map(|(x, y)| *y as u128).sum();
[INFO] [stdout]     |                                                    ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/pow/types.rs:237:48
[INFO] [stdout]     |
[INFO] [stdout] 237 |         let other_sum: u128 = other.num.iter().map(|(x, y)| *y as u128).sum();
[INFO] [stdout]     |                                                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/pow/types.rs:245:46
[INFO] [stdout]     |
[INFO] [stdout] 245 |         let self_sum: u128 = self.num.iter().map(|(x, y)| *y as u128).sum();
[INFO] [stdout]     |                                                    ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/pow/types.rs:247:48
[INFO] [stdout]     |
[INFO] [stdout] 247 |         let other_sum: u128 = other.num.iter().map(|(x, y)| *y as u128).sum();
[INFO] [stdout]     |                                                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mix`
[INFO] [stdout]    --> src/pow/types.rs:493:26
[INFO] [stdout]     |
[INFO] [stdout] 493 |             Proof::ProgPowProof { ref mix } => {
[INFO] [stdout]     |                                   ^^^^^^^ help: try ignoring the field: `mix: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `largest_allotment` is never used
[INFO] [stdout]    --> src/core/block/feijoada.rs:243:4
[INFO] [stdout]     |
[INFO] [stdout] 243 | fn largest_allotment(policy: &Policy) -> PoWType {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_policy` is never used
[INFO] [stdout]    --> src/core/block/feijoada.rs:248:4
[INFO] [stdout]     |
[INFO] [stdout] 248 | fn check_policy(policy: &Policy) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `edge_bits` is never read
[INFO] [stdout]    --> src/pow/common.rs:144:6
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub struct CuckooParams<T>
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub edge_bits: u8,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transform_header` is never used
[INFO] [stdout]   --> src/pow/progpow.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn transform_header(header: &[u8]) -> [u8; 32] {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> src/consensus.rs:175:1
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub const FOUNDATION_LEVY: [u64; 9] = [888, 777, 666, 555, 444, 333, 222, 111, 111];
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:22:9
[INFO] [stdout]     |
[INFO] [stdout] 22  | #![warn(missing_docs)]
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/consensus.rs:542:1
[INFO] [stdout]     |
[INFO] [stdout] 542 | / pub fn next_policy<T>(policy: u8, cursor: T) -> (PoWType, Policy)
[INFO] [stdout] 543 | | where
[INFO] [stdout] 544 | |     T: IntoIterator<Item = Policy>,
[INFO] [stdout]     | |___________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/core.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub mod block_fees;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/core.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub mod foundation;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/core.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Fail, Debug)]
[INFO] [stdout]    |          ^---
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Fail` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_Error`
[INFO] [stdout] 42 | pub enum Error {
[INFO] [stdout]    |          ----- `Error` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/core.rs:41:10
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Fail, Debug)]
[INFO] [stdout]    |          ^---
[INFO] [stdout]    |          |
[INFO] [stdout]    |          `Display` is not local
[INFO] [stdout]    |          move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_Error`
[INFO] [stdout] 42 | pub enum Error {
[INFO] [stdout]    |          ----- `Error` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/core/block.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub mod feijoada;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/core/block.rs:61:2
[INFO] [stdout]    |
[INFO] [stdout] 61 |     InvalidFoundationOutput,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/core/block.rs:52:39
[INFO] [stdout]    |
[INFO] [stdout] 52 | #[derive(Debug, Clone, Eq, PartialEq, Fail)]
[INFO] [stdout]    |                                       ^---
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       `Fail` is not local
[INFO] [stdout]    |                                       move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_Error`
[INFO] [stdout] 53 | pub enum Error {
[INFO] [stdout]    |          ----- `Error` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/core/block.rs:395:2
[INFO] [stdout]     |
[INFO] [stdout] 395 |     pub fn pre_pow_hash(&self) -> [u8; 32] {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/core/block.rs:431:2
[INFO] [stdout]     |
[INFO] [stdout] 431 |     pub fn overage(&self) -> i64 {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/core/block/feijoada.rs:50:1
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct AllowPolicy {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/block/feijoada.rs:51:2
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub height: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/block/feijoada.rs:52:2
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub value: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a type alias
[INFO] [stdout]   --> src/core/block/feijoada.rs:55:1
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub type AllowedPolicy = Vec<AllowPolicy>;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]   --> src/core/block/feijoada.rs:57:1
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub trait FuzzySearch {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/core/block/feijoada.rs:58:2
[INFO] [stdout]    |
[INFO] [stdout] 58 |     fn search(&self, height: u64) -> Option<u64>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/block/feijoada.rs:81:2
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub allowed_policies: AllowedPolicy,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/core/block/feijoada.rs:82:2
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub policies: Vec<Policy>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/block/feijoada.rs:171:1
[INFO] [stdout]     |
[INFO] [stdout] 171 | pub fn get_bottles_default() -> Policy {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/block/feijoada.rs:184:1
[INFO] [stdout]     |
[INFO] [stdout] 184 | pub fn next_block_bottles(pow: PoWType, bottle: &Policy) -> Policy {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/block/feijoada.rs:195:1
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub fn is_allowed_policy(allowed_policy: AllowedPolicy, height: u64, policy: u8) -> bool {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/core/block/feijoada.rs:252:1
[INFO] [stdout]     |
[INFO] [stdout] 252 | pub fn count_beans(bottles: &Policy) -> u32 {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> src/core/block/feijoada.rs:256:1
[INFO] [stdout]     |
[INFO] [stdout] 256 | pub trait Feijoada {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/core/block/feijoada.rs:257:2
[INFO] [stdout]     |
[INFO] [stdout] 257 |     fn choose_algo(policy: &Policy, bottles: &Policy) -> PoWType;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> src/core/block/feijoada.rs:260:1
[INFO] [stdout]     |
[INFO] [stdout] 260 | pub struct Deterministic;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/core/committed.rs:26:39
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Debug, Clone, PartialEq, Eq, Fail, Serialize, Deserialize)]
[INFO] [stdout]    |                                       ^---
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       `Fail` is not local
[INFO] [stdout]    |                                       move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_Error`
[INFO] [stdout] 27 | pub enum Error {
[INFO] [stdout]    |          ----- `Error` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/core/committed.rs:26:39
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Debug, Clone, PartialEq, Eq, Fail, Serialize, Deserialize)]
[INFO] [stdout]    |                                       ^---
[INFO] [stdout]    |                                       |
[INFO] [stdout]    |                                       `Display` is not local
[INFO] [stdout]    |                                       move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_Error`
[INFO] [stdout] 27 | pub enum Error {
[INFO] [stdout]    |          ----- `Error` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> src/global.rs:107:1
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub const CURRENT_HEADER_VERSION: u16 = 6;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> src/global.rs:110:1
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub const MAINNET_FOUNDATION_JSON_SHA256: &str =
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]    --> src/global.rs:117:1
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub const FLOONET_FOUNDATION_JSON_SHA256: &str =
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/global.rs:193:1
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub fn foundation_json_sha256() -> &'static str {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/global.rs:276:1
[INFO] [stdout]     |
[INFO] [stdout] 276 | pub fn add_allowed_policy(height: u64, value: u64) {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/global.rs:283:1
[INFO] [stdout]     |
[INFO] [stdout] 283 | pub fn get_allowed_policies() -> Vec<AllowPolicy> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/global.rs:288:1
[INFO] [stdout]     |
[INFO] [stdout] 288 | pub fn get_emitted_policy(height: u64) -> u8 {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/global.rs:305:1
[INFO] [stdout]     |
[INFO] [stdout] 305 | pub fn get_policies(index: u8) -> Option<Policy> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/global.rs:556:1
[INFO] [stdout]     |
[INFO] [stdout] 556 | / pub fn ts_data_to_vector<T>(cursor: T, needed_block_count: u64) -> Vec<HeaderInfo>
[INFO] [stdout] 557 | | where
[INFO] [stdout] 558 | |     T: IntoIterator<Item = HeaderInfo>,
[INFO] [stdout]     | |_______________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/global.rs:610:1
[INFO] [stdout]     |
[INFO] [stdout] 610 | pub fn get_file_sha256(path: &str) -> String {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/libtx/error.rs:29:28
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Clone, Debug, Eq, Fail, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                            ^---
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            `Fail` is not local
[INFO] [stdout]    |                            move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ErrorKind`
[INFO] [stdout] 30 | /// Libwallet error types
[INFO] [stdout] 31 | pub enum ErrorKind {
[INFO] [stdout]    |          --------- `ErrorKind` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/libtx/error.rs:29:28
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[derive(Clone, Debug, Eq, Fail, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                            ^---
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            `Display` is not local
[INFO] [stdout]    |                            move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ErrorKind`
[INFO] [stdout] 30 | /// Libwallet error types
[INFO] [stdout] 31 | pub enum ErrorKind {
[INFO] [stdout]    |          --------- `ErrorKind` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/libtx/reward.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | / pub fn output_foundation<K, B>(
[INFO] [stdout] 29 | |     keychain: &K,
[INFO] [stdout] 30 | |     builder: &B,
[INFO] [stdout] 31 | |     key_id: &Identifier,
[INFO] [stdout] ...  |
[INFO] [stdout] 36 | |     K: Keychain,
[INFO] [stdout] 37 | |     B: ProofBuild,
[INFO] [stdout]    | |__________________^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/libtx/mod.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/libtx/reward.rs:151:1
[INFO] [stdout]     |
[INFO] [stdout] 151 | / pub fn output_foundation_proof<K>(
[INFO] [stdout] 152 | |     keychain: &K,
[INFO] [stdout] 153 | |     key_id: &Identifier,
[INFO] [stdout] 154 | |     test_mode: bool,
[INFO] [stdout] ...   |
[INFO] [stdout] 157 | | where
[INFO] [stdout] 158 | |     K: Keychain,
[INFO] [stdout]     | |________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/pow.rs:42:1
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub mod progpow;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/pow.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | #![warn(missing_docs)]
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]   --> src/pow.rs:43:1
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub mod randomx;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/pow/error.rs:26:28
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Clone, Debug, Eq, Fail, PartialEq)]
[INFO] [stdout]    |                            ^---
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            `Fail` is not local
[INFO] [stdout]    |                            move the `impl` block outside of this constant `_DERIVE_failure_Fail_FOR_ErrorKind`
[INFO] [stdout] 27 | /// Libwallet error types
[INFO] [stdout] 28 | pub enum ErrorKind {
[INFO] [stdout]    |          --------- `ErrorKind` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/pow/error.rs:26:28
[INFO] [stdout]    |
[INFO] [stdout] 26 | #[derive(Clone, Debug, Eq, Fail, PartialEq)]
[INFO] [stdout]    |                            ^---
[INFO] [stdout]    |                            |
[INFO] [stdout]    |                            `Display` is not local
[INFO] [stdout]    |                            move the `impl` block outside of this constant `_DERIVE_failure_core_fmt_Display_FOR_ErrorKind`
[INFO] [stdout] 27 | /// Libwallet error types
[INFO] [stdout] 28 | pub enum ErrorKind {
[INFO] [stdout]    |          --------- `ErrorKind` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Fail` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Fail` may come from an old version of the `failure_derive` crate, try updating your dependency with `cargo update -p failure_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Fail` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]  --> src/pow/md5.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct MD5Context<T>
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/md5.rs:13:2
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub edge_bits: u8,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/md5.rs:14:2
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub proof_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/md5.rs:15:2
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub max_sols: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/md5.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout] 20 | / pub fn new_md5_ctx<T>(
[INFO] [stdout] 21 | |     edge_bits: u8,
[INFO] [stdout] 22 | |     proof_size: usize,
[INFO] [stdout] 23 | |     max_sols: u32,
[INFO] [stdout] 24 | | ) -> Result<Box<dyn PoWContext<T>>, Error>
[INFO] [stdout] 25 | | where
[INFO] [stdout] 26 | |     T: EdgeType + 'static,
[INFO] [stdout]    | |__________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/progpow.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | / pub fn new_progpow_ctx<T>() -> Result<Box<dyn PoWContext<T>>, Error>
[INFO] [stdout] 23 | |     where
[INFO] [stdout] 24 | |         T: EdgeType + 'static,
[INFO] [stdout]    | |______________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/progpow.rs:47:1
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn get_progpow_value(header: &[u8], height: u64, nonce: u64) -> [u8; 32] {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/pow/progpow.rs:61:1
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct ProgPowContext<T>
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/progpow.rs:65:2
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub header: Vec<u8>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/progpow.rs:66:2
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub nonce: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/progpow.rs:67:2
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub height: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/pow/randomx.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const SEEDHASH_EPOCH_BLOCKS: u64 = 1000;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/pow/randomx.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const SEEDHASH_EPOCH_LAG: u64 = 60;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/randomx.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn rx_epoch_start(epoch_height: u64) -> u64 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/randomx.rs:27:1
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn rx_epoch_end(epoch_height: u64) -> u64 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/randomx.rs:35:1
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn rx_next_seed_height(height: u64) -> Option<u64> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/randomx.rs:49:1
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub fn rx_current_seed_height(height: u64) -> u64 {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/pow/randomx.rs:61:1
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct RXContext<T>
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/randomx.rs:65:2
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub seed: [u8; 32],
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/randomx.rs:66:2
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub header: Vec<u8>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]   --> src/pow/randomx.rs:67:2
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub nonce: u64,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/pow/randomx.rs:71:1
[INFO] [stdout]    |
[INFO] [stdout] 71 | / pub fn new_randomx_ctx<T>(seed: [u8; 32]) -> Result<Box<dyn PoWContext<T>>, Error>
[INFO] [stdout] 72 | |     where
[INFO] [stdout] 73 | |         T: EdgeType + 'static,
[INFO] [stdout]    | |______________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an enum
[INFO] [stdout]   --> src/pow/types.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum PoWType {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/pow/types.rs:46:2
[INFO] [stdout]    |
[INFO] [stdout] 46 |     Cuckaroo,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/pow/types.rs:47:2
[INFO] [stdout]    |
[INFO] [stdout] 47 |     Cuckatoo,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/pow/types.rs:48:2
[INFO] [stdout]    |
[INFO] [stdout] 48 |     RandomX,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]   --> src/pow/types.rs:49:2
[INFO] [stdout]    |
[INFO] [stdout] 49 |     ProgPow,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/pow/types.rs:62:2
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn to_str(&self) -> String {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a trait
[INFO] [stdout]    --> src/pow/types.rs:124:1
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub trait DifficultyNumberBasic {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/pow/types.rs:125:2
[INFO] [stdout]     |
[INFO] [stdout] 125 |     fn number(v: u64) -> Self;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a type alias
[INFO] [stdout]    --> src/pow/types.rs:128:1
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub type DifficultyNumber = HashMap<PoWType, u64>;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/pow/types.rs:146:2
[INFO] [stdout]     |
[INFO] [stdout] 146 |     pub num: DifficultyNumber,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/pow/types.rs:180:2
[INFO] [stdout]     |
[INFO] [stdout] 180 |     pub fn from_dic_number(num: DifficultyNumber) -> Difficulty {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/pow/types.rs:554:2
[INFO] [stdout]     |
[INFO] [stdout] 554 |     MD5Proof {
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/pow/types.rs:555:3
[INFO] [stdout]     |
[INFO] [stdout] 555 |         proof: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/pow/types.rs:556:3
[INFO] [stdout]     |
[INFO] [stdout] 556 |         edge_bits: u8,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/pow/types.rs:559:2
[INFO] [stdout]     |
[INFO] [stdout] 559 |     RandomXProof {
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/pow/types.rs:560:3
[INFO] [stdout]     |
[INFO] [stdout] 560 |         hash: [u8; 32],
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a variant
[INFO] [stdout]    --> src/pow/types.rs:563:2
[INFO] [stdout]     |
[INFO] [stdout] 563 |     ProgPowProof {
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct field
[INFO] [stdout]    --> src/pow/types.rs:564:3
[INFO] [stdout]     |
[INFO] [stdout] 564 |         mix: [u8; 32],
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "8517970edb0bdbc3cc11edb1c96f828568a07bc509d83dbccf36082c3930dfa1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8517970edb0bdbc3cc11edb1c96f828568a07bc509d83dbccf36082c3930dfa1", kill_on_drop: false }`
[INFO] [stdout] 8517970edb0bdbc3cc11edb1c96f828568a07bc509d83dbccf36082c3930dfa1
