[INFO] fetching crate qudag-dag 0.5.0...
[INFO] testing qudag-dag-0.5.0 against beta-2025-10-28 for beta-1.92-2
[INFO] extracting crate qudag-dag 0.5.0 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate qudag-dag 0.5.0
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate qudag-dag 0.5.0
[INFO] tweaked toml for crates.io crate qudag-dag 0.5.0 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate qudag-dag 0.5.0 on toolchain beta-2025-10-28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate qudag-dag 0.5.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3f9ade2110d3aac0f3957c7e7dcc5568d1a8b05895716e5b7b68f2a75b26cb3b
[INFO] running `Command { std: "docker" "start" "-a" "3f9ade2110d3aac0f3957c7e7dcc5568d1a8b05895716e5b7b68f2a75b26cb3b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3f9ade2110d3aac0f3957c7e7dcc5568d1a8b05895716e5b7b68f2a75b26cb3b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3f9ade2110d3aac0f3957c7e7dcc5568d1a8b05895716e5b7b68f2a75b26cb3b", kill_on_drop: false }`
[INFO] [stdout] 3f9ade2110d3aac0f3957c7e7dcc5568d1a8b05895716e5b7b68f2a75b26cb3b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5e0e0b2a35815d0cb64bd2c24b1d8b4ca13e20e7d404df678f0b273c43a37aa7
[INFO] running `Command { std: "docker" "start" "-a" "5e0e0b2a35815d0cb64bd2c24b1d8b4ca13e20e7d404df678f0b273c43a37aa7", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]    Compiling cfg-if v1.0.1
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling glob v0.3.2
[INFO] [stderr]    Compiling semver v1.0.26
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling opaque-debug v0.3.1
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling pqcrypto-traits v0.3.5
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling hashbrown v0.15.4
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling slab v0.4.10
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling base64ct v1.8.0
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling ed25519 v2.2.3
[INFO] [stderr]    Compiling tracing-core v0.1.34
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling keccak v0.1.5
[INFO] [stderr]    Compiling constant_time_eq v0.3.1
[INFO] [stderr]    Compiling arrayref v0.3.9
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling anyhow v1.0.98
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling ryu v1.0.20
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling fixedbitset v0.4.2
[INFO] [stderr]    Compiling bytes v1.10.1
[INFO] [stderr]    Compiling itoa v1.0.15
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling jobserver v0.1.33
[INFO] [stderr]    Compiling signal-hook-registry v1.4.5
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling indexmap v2.9.0
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling password-hash v0.5.0
[INFO] [stderr]    Compiling cc v1.2.27
[INFO] [stderr]    Compiling dashmap v5.5.3
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling poly1305 v0.8.0
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling blake2 v0.10.6
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling sha3 v0.10.8
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling petgraph v0.6.5
[INFO] [stderr]    Compiling argon2 v0.5.3
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling pqcrypto-internals v0.2.10
[INFO] [stderr]    Compiling pqcrypto-hqc v0.2.1
[INFO] [stderr]    Compiling pqcrypto-dilithium v0.5.0
[INFO] [stderr]    Compiling pqcrypto-kyber v0.5.0
[INFO] [stderr]    Compiling blake3 v1.8.2
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling metrics-macros v0.7.1
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling zeroize v1.8.1
[INFO] [stderr]    Compiling metrics v0.21.1
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling chacha20 v0.9.1
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling tokio v1.45.1
[INFO] [stderr]    Compiling chacha20poly1305 v0.10.1
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling x25519-dalek v2.0.1
[INFO] [stderr]    Compiling ed25519-dalek v2.1.1
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling uuid v1.17.0
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling qudag-crypto v0.5.0
[INFO] [stderr]    Compiling qudag-dag v0.5.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 01s
[INFO] running `Command { std: "docker" "inspect" "5e0e0b2a35815d0cb64bd2c24b1d8b4ca13e20e7d404df678f0b273c43a37aa7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5e0e0b2a35815d0cb64bd2c24b1d8b4ca13e20e7d404df678f0b273c43a37aa7", kill_on_drop: false }`
[INFO] [stdout] 5e0e0b2a35815d0cb64bd2c24b1d8b4ca13e20e7d404df678f0b273c43a37aa7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 07cf62338fe0cac29756e4700799de4018d0f4f4e5c41a9d05ff28459f7fbdc8
[INFO] running `Command { std: "docker" "start" "-a" "07cf62338fe0cac29756e4700799de4018d0f4f4e5c41a9d05ff28459f7fbdc8", kill_on_drop: false }`
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling rustix v1.0.7
[INFO] [stderr]    Compiling linux-raw-sys v0.9.4
[INFO] [stderr]    Compiling bitflags v2.9.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling uuid v1.17.0
[INFO] [stderr]    Compiling rand v0.9.1
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling qudag-dag v0.5.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling tempfile v3.20.0
[INFO] [stderr]    Compiling rusty-fork v0.3.0
[INFO] [stderr]    Compiling proptest v1.7.0
[INFO] [stdout] warning: unused imports: `Confidence` and `ConsensusMetrics`
[INFO] [stdout]  --> tests/integration_qr_avalanche.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     Confidence, ConsensusMetrics, ConsensusStatus, QRAvalanche, QRAvalancheConfig, VertexId,
[INFO] [stdout]   |     ^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `tokio_test`
[INFO] [stdout]  --> tests/liveness_tests.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tokio_test::block_on;
[INFO] [stdout]   |     ^^^^^^^^^^ use of unresolved module or unlinked crate `tokio_test`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `tokio_test`, use `cargo add tokio_test` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `proptest`
[INFO] [stdout]    --> tests/qr_avalanche_tests.rs:252:7
[INFO] [stdout]     |
[INFO] [stdout] 252 | #[cfg(feature = "proptest")]
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`, `full-optimizations`, `optimizations`, `traversal-index`, and `validation-cache`
[INFO] [stdout]     = help: consider adding `proptest` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ConsensusError` and `DagMessage`
[INFO] [stdout]  --> tests/qr_avalanche_tests.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use qudag_dag::{ConsensusError, ConsensusStatus, DagMessage, QRAvalanche, Vertex, VertexId};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^                   ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> tests/qr_avalanche_tests.rs:4:24
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::sleep`
[INFO] [stdout]  --> tests/qr_avalanche_tests.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use tokio::time::sleep;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0532]: expected tuple struct or tuple variant, found unit variant `ConsensusError::InvalidVertex`
[INFO] [stdout]   --> tests/safety_tests.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |         Err(ConsensusError::InvalidVertex(_))
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use this syntax instead: `ConsensusError::InvalidVertex`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/workdir/src/consensus.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     InvalidVertex,
[INFO] [stdout]    |     ------------- `ConsensusError::InvalidVertex` defined here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConsensusError`
[INFO] [stdout]  --> tests/network_conditions_tests.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use qudag_dag::{ConsensusError, ConsensusStatus, QRAvalanche, QRAvalancheConfig, VertexId};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> tests/network_conditions_tests.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Confidence`
[INFO] [stdout]  --> tests/safety_tests.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use qudag_dag::{Confidence, ConsensusConfig, ConsensusError, DAGConsensus, Vertex};
[INFO] [stdout]   |                 ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `qudag_dag::QrAvalanche`
[INFO] [stdout]  --> tests/network_sim.rs:2:41
[INFO] [stdout]   |
[INFO] [stdout] 2 | use qudag_dag::{Graph, Node, NodeState, QrAvalanche};
[INFO] [stdout]   |                                         ^^^^^^^^^^^
[INFO] [stdout]   |                                         |
[INFO] [stdout]   |                                         no `QrAvalanche` in the root
[INFO] [stdout]   |                                         help: a similar name exists in the module: `QRAvalanche`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `ConsensusEvent` in this scope
[INFO] [stdout]   --> tests/network_sim.rs:22:31
[INFO] [stdout]    |
[INFO] [stdout] 22 |     events_rx: mpsc::Receiver<ConsensusEvent>,
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: you might be missing a type parameter
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct SimNode<ConsensusEvent> {
[INFO] [stdout]    |               ++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `blake3::Hash` cannot be dereferenced
[INFO] [stdout]   --> tests/network_sim.rs:63:25
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let node_hash = *test_node.hash();
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> tests/network_sim.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |             node.consensus.process_node(node_hash).await.unwrap();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]  --> tests/safety_tests.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 |         id: id.to_string(),
[INFO] [stdout]   |             ^^^^^^^^^^^^^^ expected `VertexId`, found `String`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: a value of type `Vec<VertexId>` cannot be built from an iterator over elements of type `String`
[INFO] [stdout]  --> tests/safety_tests.rs:8:56
[INFO] [stdout]   |
[INFO] [stdout] 8 |         parents: parents.into_iter().map(String::from).collect(),
[INFO] [stdout]   |                                                        ^^^^^^^ value of type `Vec<VertexId>` cannot be built from `std::iter::Iterator<Item=String>`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromIterator<String>` is not implemented for `Vec<VertexId>`
[INFO] [stdout]           but trait `FromIterator<VertexId>` is implemented for it
[INFO] [stdout]   = help: for that trait implementation, expected `VertexId`, found `String`
[INFO] [stdout] note: the method call chain might not have had the expected associated types
[INFO] [stdout]  --> tests/safety_tests.rs:8:38
[INFO] [stdout]   |
[INFO] [stdout] 8 |         parents: parents.into_iter().map(String::from).collect(),
[INFO] [stdout]   |                  ------- ----------- ^^^^^^^^^^^^^^^^^ `Iterator::Item` changed to `String` here
[INFO] [stdout]   |                  |       |
[INFO] [stdout]   |                  |       `Iterator::Item` is `&str` here
[INFO] [stdout]   |                  this expression has type `Vec<&str>`
[INFO] [stdout] note: required by a bound in `collect`
[INFO] [stdout]  --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/iter/traits/iterator.rs:2015:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]  --> tests/byzantine_tests.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 |         id: id.to_string(),
[INFO] [stdout]   |             ^^^^^^^^^^^^^^ expected `VertexId`, found `String`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> tests/safety_tests.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 81 |         dag.add_vertex(cycle_vertex),
[INFO] [stdout]    |         ---------------------------- this expression has type `Result<(), qudag_dag::DagError>`
[INFO] [stdout] 82 |         Err(ConsensusError::ValidationError(_))
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `DagError`, found `ConsensusError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `blake3::Hash` cannot be dereferenced
[INFO] [stdout]    --> tests/network_sim.rs:139:21
[INFO] [stdout]     |
[INFO] [stdout] 139 |     let node_hash = *test_node.hash();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/safety_tests.rs:109:21
[INFO] [stdout]     |
[INFO] [stdout] 109 |                 id: id.clone(),
[INFO] [stdout]     |                     ^^^^^^^^^^ expected `VertexId`, found `String`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `blake3::Hash` cannot be dereferenced
[INFO] [stdout]    --> tests/network_sim.rs:169:21
[INFO] [stdout]     |
[INFO] [stdout] 169 |     let node_hash = *test_node.hash();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/safety_tests.rs:110:17
[INFO] [stdout]     |
[INFO] [stdout] 104 |                     parents.push(format!("V{}", j));
[INFO] [stdout]     |                     -------      ----------------- this argument has type `String`...
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     ... which causes `parents` to have type `Vec<String>`
[INFO] [stdout] ...
[INFO] [stdout] 110 |                 parents,
[INFO] [stdout]     |                 ^^^^^^^ expected `Vec<VertexId>`, found `Vec<String>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<VertexId>`
[INFO] [stdout]                found struct `Vec<String>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `blake3::Hash` cannot be dereferenced
[INFO] [stdout]    --> tests/network_sim.rs:204:21
[INFO] [stdout]     |
[INFO] [stdout] 204 |     let node_hash = *test_node.hash();
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: can't compare `String` with `VertexId`
[INFO] [stdout]    --> tests/safety_tests.rs:126:60
[INFO] [stdout]     |
[INFO] [stdout] 126 |             let vertex_idx = order.iter().position(|id| id == &vertex.id).unwrap();
[INFO] [stdout]     |                                                            ^^ no implementation for `String == VertexId`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PartialEq<VertexId>` is not implemented for `String`
[INFO] [stdout]     = help: the following other types implement trait `PartialEq<Rhs>`:
[INFO] [stdout]               `String` implements `PartialEq<&str>`
[INFO] [stdout]               `String` implements `PartialEq<ByteStr>`
[INFO] [stdout]               `String` implements `PartialEq<ByteString>`
[INFO] [stdout]               `String` implements `PartialEq<Cow<'_, str>>`
[INFO] [stdout]               `String` implements `PartialEq<Path>`
[INFO] [stdout]               `String` implements `PartialEq<PathBuf>`
[INFO] [stdout]               `String` implements `PartialEq<bytes::bytes::Bytes>`
[INFO] [stdout]               `String` implements `PartialEq<bytes::bytes_mut::BytesMut>`
[INFO] [stdout]             and 3 others
[INFO] [stdout]     = note: required for `&String` to implement `PartialEq<&VertexId>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: can't compare `String` with `VertexId`
[INFO] [stdout]    --> tests/safety_tests.rs:128:64
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 let parent_idx = order.iter().position(|id| id == parent).unwrap();
[INFO] [stdout]     |                                                                ^^ no implementation for `String == VertexId`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PartialEq<VertexId>` is not implemented for `String`
[INFO] [stdout]     = help: the following other types implement trait `PartialEq<Rhs>`:
[INFO] [stdout]               `String` implements `PartialEq<&str>`
[INFO] [stdout]               `String` implements `PartialEq<ByteStr>`
[INFO] [stdout]               `String` implements `PartialEq<ByteString>`
[INFO] [stdout]               `String` implements `PartialEq<Cow<'_, str>>`
[INFO] [stdout]               `String` implements `PartialEq<Path>`
[INFO] [stdout]               `String` implements `PartialEq<PathBuf>`
[INFO] [stdout]               `String` implements `PartialEq<bytes::bytes::Bytes>`
[INFO] [stdout]               `String` implements `PartialEq<bytes::bytes_mut::BytesMut>`
[INFO] [stdout]             and 3 others
[INFO] [stdout]     = note: required for `&String` to implement `PartialEq<&VertexId>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: a value of type `Vec<VertexId>` cannot be built from an iterator over elements of type `String`
[INFO] [stdout]  --> tests/byzantine_tests.rs:9:56
[INFO] [stdout]   |
[INFO] [stdout] 9 |         parents: parents.into_iter().map(String::from).collect(),
[INFO] [stdout]   |                                                        ^^^^^^^ value of type `Vec<VertexId>` cannot be built from `std::iter::Iterator<Item=String>`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromIterator<String>` is not implemented for `Vec<VertexId>`
[INFO] [stdout]           but trait `FromIterator<VertexId>` is implemented for it
[INFO] [stdout]   = help: for that trait implementation, expected `VertexId`, found `String`
[INFO] [stdout] note: the method call chain might not have had the expected associated types
[INFO] [stdout]  --> tests/byzantine_tests.rs:9:38
[INFO] [stdout]   |
[INFO] [stdout] 9 |         parents: parents.into_iter().map(String::from).collect(),
[INFO] [stdout]   |                  ------- ----------- ^^^^^^^^^^^^^^^^^ `Iterator::Item` changed to `String` here
[INFO] [stdout]   |                  |       |
[INFO] [stdout]   |                  |       `Iterator::Item` is `&str` here
[INFO] [stdout]   |                  this expression has type `Vec<&str>`
[INFO] [stdout] note: required by a bound in `collect`
[INFO] [stdout]  --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/iter/traits/iterator.rs:2015:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> tests/byzantine_tests.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         dag.add_vertex(fork_vertex),
[INFO] [stdout]    |         --------------------------- this expression has type `Result<(), qudag_dag::DagError>`
[INFO] [stdout] 29 |         Err(ConsensusError::ForkDetected(_))
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `DagError`, found `ConsensusError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> tests/byzantine_tests.rs:56:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |         dag.add_vertex(vertex_b2),
[INFO] [stdout]    |         ------------------------- this expression has type `Result<(), qudag_dag::DagError>`
[INFO] [stdout] 56 |         Err(ConsensusError::ForkDetected(_))
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `DagError`, found `ConsensusError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> tests/integration_qr_avalanche.rs:338:13
[INFO] [stdout]     |
[INFO] [stdout] 338 |         let status = consensus
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `ConsensusEvent`
[INFO] [stdout]    --> tests/network_sim.rs:120:21
[INFO] [stdout]     |
[INFO] [stdout] 120 |                     ConsensusEvent::NodeFinalized(hash) => Some((hash, NodeState::Final)),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^ use of undeclared type `ConsensusEvent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `ConsensusEvent`
[INFO] [stdout]    --> tests/network_sim.rs:121:21
[INFO] [stdout]     |
[INFO] [stdout] 121 |                     ConsensusEvent::NodeRejected(hash) => Some((hash, NodeState::Rejected)),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^ use of undeclared type `ConsensusEvent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0412, E0432, E0433, E0614.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> tests/byzantine_tests.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 84 |         dag.add_vertex(vertex_c2),
[INFO] [stdout]    |         ------------------------- this expression has type `Result<(), qudag_dag::DagError>`
[INFO] [stdout] 85 |         Err(ConsensusError::ForkDetected(_))
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `DagError`, found `ConsensusError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `qudag-dag` (test "network_sim") due to 9 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/invariant_tests.rs:179:5
[INFO] [stdout]     |
[INFO] [stdout] 179 |     /// Property-based test for DAG invariants
[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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0532.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/byzantine_tests.rs:104:17
[INFO] [stdout]     |
[INFO] [stdout] 104 |             id: format!("V{}", i),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ expected `VertexId`, found `String`
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]  --> tests/liveness_tests.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 |         id: id.to_string(),
[INFO] [stdout]   |             ^^^^^^^^^^^^^^ expected `VertexId`, found `String`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/byzantine_tests.rs:108:22
[INFO] [stdout]     |
[INFO] [stdout] 108 |                 vec![format!("V{}", i - 1)]
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^ expected `VertexId`, found `String`
[INFO] [stdout]     |
[INFO] [stdout]     = note: this error originates in the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated item named `Final` found for struct `Confidence` in the current scope
[INFO] [stdout]    --> tests/byzantine_tests.rs:119:59
[INFO] [stdout]     |
[INFO] [stdout] 119 |     assert_eq!(dag.get_confidence("V0"), Some(Confidence::Final));
[INFO] [stdout]     |                                                           ^^^^^ associated item not found in `Confidence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated item named `Final` found for struct `Confidence` in the current scope
[INFO] [stdout]    --> tests/byzantine_tests.rs:120:60
[INFO] [stdout]     |
[INFO] [stdout] 120 |     assert_eq!(dag.get_confidence("V50"), Some(Confidence::Final));
[INFO] [stdout]     |                                                            ^^^^^ associated item not found in `Confidence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: a value of type `Vec<VertexId>` cannot be built from an iterator over elements of type `String`
[INFO] [stdout]  --> tests/liveness_tests.rs:9:56
[INFO] [stdout]   |
[INFO] [stdout] 9 |         parents: parents.into_iter().map(String::from).collect(),
[INFO] [stdout]   |                                                        ^^^^^^^ value of type `Vec<VertexId>` cannot be built from `std::iter::Iterator<Item=String>`
[INFO] [stdout]   |
[INFO] [stdout]   = help: the trait `FromIterator<String>` is not implemented for `Vec<VertexId>`
[INFO] [stdout]           but trait `FromIterator<VertexId>` is implemented for it
[INFO] [stdout]   = help: for that trait implementation, expected `VertexId`, found `String`
[INFO] [stdout] note: the method call chain might not have had the expected associated types
[INFO] [stdout]  --> tests/liveness_tests.rs:9:38
[INFO] [stdout]   |
[INFO] [stdout] 9 |         parents: parents.into_iter().map(String::from).collect(),
[INFO] [stdout]   |                  ------- ----------- ^^^^^^^^^^^^^^^^^ `Iterator::Item` changed to `String` here
[INFO] [stdout]   |                  |       |
[INFO] [stdout]   |                  |       `Iterator::Item` is `&str` here
[INFO] [stdout]   |                  this expression has type `Vec<&str>`
[INFO] [stdout] note: required by a bound in `collect`
[INFO] [stdout]  --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/iter/traits/iterator.rs:2015:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/byzantine_tests.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 id: id.clone(),
[INFO] [stdout]     |                     ^^^^^^^^^^ expected `VertexId`, found `String`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/byzantine_tests.rs:151:17
[INFO] [stdout]     |
[INFO] [stdout] 151 |                 parents,
[INFO] [stdout]     |                 ^^^^^^^ expected `Vec<VertexId>`, found `Vec<String>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<VertexId>`
[INFO] [stdout]                found struct `Vec<String>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> tests/byzantine_tests.rs:167:21
[INFO] [stdout]     |
[INFO] [stdout] 167 |                 id: target_id.clone(),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^ expected `VertexId`, found `String`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0599.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `qudag-dag` (test "byzantine_tests") due to 12 previous errors
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved imports `crate::ConsensusEvent`, `crate::DagError`, `crate::Graph`, `crate::Node`, `crate::NodeState`, `crate::QrAvalanche`
[INFO] [stdout]  --> tests/consensus_performance_tests.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::{ConsensusEvent, DagError, Graph, Node, NodeState, QrAvalanche};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^  ^^^^^^^^  ^^^^^  ^^^^  ^^^^^^^^^  ^^^^^^^^^^^ no `QrAvalanche` in the root
[INFO] [stdout]   |             |               |         |      |     |
[INFO] [stdout]   |             |               |         |      |     no `NodeState` in the root
[INFO] [stdout]   |             |               |         |      no `Node` in the root
[INFO] [stdout]   |             |               |         no `Graph` in the root
[INFO] [stdout]   |             |               no `DagError` in the root
[INFO] [stdout]   |             no `ConsensusEvent` in the root
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider importing one of these enums instead:
[INFO] [stdout]           qudag_dag::DagError
[INFO] [stdout]           qudag_dag::dag::DagError
[INFO] [stdout]   = help: consider importing one of these structs instead:
[INFO] [stdout]           petgraph::Graph
[INFO] [stdout]           qudag_dag::Graph
[INFO] [stdout]   = help: consider importing one of these items instead:
[INFO] [stdout]           petgraph::data::Element::Node
[INFO] [stdout]           petgraph::graph::Node
[INFO] [stdout]           qudag_dag::Node
[INFO] [stdout]   = help: consider importing this enum instead:
[INFO] [stdout]           qudag_dag::NodeState
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::mpsc`
[INFO] [stdout]  --> tests/consensus_performance_tests.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use tokio::sync::mpsc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `(_, _)`
[INFO] [stdout]   --> tests/consensus_performance_tests.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let (graph, node_hashes) = setup_test_dag(TEST_NODES).await;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 72 |     let (consensus, mut events_rx) = QrAvalanche::new(graph.clone());
[INFO] [stdout]    |                                                       ----- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this pattern a type, where the placeholders `_` are specified
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let (graph, node_hashes): (_, _) = setup_test_dag(TEST_NODES).await;
[INFO] [stdout]    |                             ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> tests/consensus_performance_tests.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |         consensus.process_node(node_hash).await.unwrap();
[INFO] [stdout]    |         ^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> tests/consensus_performance_tests.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |         consensus.process_node(node_hash).await.unwrap();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> tests/consensus_performance_tests.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 86 | /         simulate_concurrent_voting(&consensus, node_hash, CONCURRENT_VOTES)
[INFO] [stdout] 87 | |             .await
[INFO] [stdout]    | |__________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> tests/consensus_performance_tests.rs:91:15
[INFO] [stdout]    |
[INFO] [stdout] 91 |         match events_rx.recv().await {
[INFO] [stdout]    |               ^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `(_, _)`
[INFO] [stdout]    --> tests/consensus_performance_tests.rs:120:9
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let (graph, node_hashes) = setup_test_dag(TEST_NODES).await;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 121 |     let (consensus, mut events_rx) = QrAvalanche::new(graph.clone());
[INFO] [stdout]     |                                                       ----- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this pattern a type, where the placeholders `_` are specified
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let (graph, node_hashes): (_, _) = setup_test_dag(TEST_NODES).await;
[INFO] [stdout]     |                             ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `({type error}, _)`
[INFO] [stdout]    --> tests/consensus_performance_tests.rs:120:9
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let (graph, node_hashes) = setup_test_dag(TEST_NODES).await;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     for nodes in node_hashes.chunks(batch_size) {
[INFO] [stdout]     |                  ----------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this pattern a type, where the placeholders `_` are specified
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let (graph, node_hashes): (_, _) = setup_test_dag(TEST_NODES).await;
[INFO] [stdout]     |                             ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/consensus_performance_tests.rs:135:29
[INFO] [stdout]     |
[INFO] [stdout] 135 |             let consensus = consensus.clone();
[INFO] [stdout]     |                             ^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/consensus_performance_tests.rs:137:17
[INFO] [stdout]     |
[INFO] [stdout] 137 |                 consensus.process_node(node_hash).await.unwrap();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/consensus_performance_tests.rs:138:17
[INFO] [stdout]     |
[INFO] [stdout] 138 | /                 simulate_concurrent_voting(&consensus, node_hash, CONCURRENT_VOTES)
[INFO] [stdout] 139 | |                     .await
[INFO] [stdout]     | |__________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/consensus_performance_tests.rs:154:25
[INFO] [stdout]     |
[INFO] [stdout] 154 |         let node_hash = handle.await.unwrap();
[INFO] [stdout]     |                         ^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/consensus_performance_tests.rs:156:15
[INFO] [stdout]     |
[INFO] [stdout] 156 |         match events_rx.recv().await {
[INFO] [stdout]     |               ^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/consensus_performance_tests.rs:177:9
[INFO] [stdout]     |
[INFO] [stdout] 177 |         consensus.process_node(node_hash).await.unwrap();
[INFO] [stdout]     |         ^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/consensus_performance_tests.rs:177:9
[INFO] [stdout]     |
[INFO] [stdout] 177 |         consensus.process_node(node_hash).await.unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated item named `Final` found for struct `Confidence` in the current scope
[INFO] [stdout]   --> tests/liveness_tests.rs:41:58
[INFO] [stdout]    |
[INFO] [stdout] 41 |     assert_eq!(dag.get_confidence("A"), Some(Confidence::Final));
[INFO] [stdout]    |                                                          ^^^^^ associated item not found in `Confidence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `qudag-dag` (test "safety_tests") due to 8 previous errors; 1 warning emitted
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated item named `Final` found for struct `Confidence` in the current scope
[INFO] [stdout]   --> tests/liveness_tests.rs:42:58
[INFO] [stdout]    |
[INFO] [stdout] 42 |     assert_eq!(dag.get_confidence("B"), Some(Confidence::Final));
[INFO] [stdout]    |                                                          ^^^^^ associated item not found in `Confidence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated item named `Final` found for struct `Confidence` in the current scope
[INFO] [stdout]   --> tests/liveness_tests.rs:43:58
[INFO] [stdout]    |
[INFO] [stdout] 43 |     assert_eq!(dag.get_confidence("C"), Some(Confidence::Final));
[INFO] [stdout]    |                                                          ^^^^^ associated item not found in `Confidence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `qudag-dag` (test "consensus_performance_tests") due to 15 previous errors; 1 warning emitted
[INFO] [stdout] error[E0432]: unresolved imports `qudag_dag::consensus::ConsensusEngine`, `qudag_dag::consensus::QrAvalanche`, `qudag_dag::consensus::Vote`, `qudag_dag::consensus::VoteResult`, `qudag_dag::error::Result`, `qudag_dag::node::NodeId`, `qudag_dag::tip_selection::TipSelector`
[INFO] [stdout]   --> tests/concurrent_consensus_tests.rs:9:17
[INFO] [stdout]    |
[INFO] [stdout]  9 |     consensus::{ConsensusEngine, QrAvalanche, Vote, VoteResult},
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^  ^^^^^^^^^^ no `VoteResult` in `consensus`
[INFO] [stdout]    |                 |                |            |
[INFO] [stdout]    |                 |                |            no `Vote` in `consensus`
[INFO] [stdout]    |                 |                no `QrAvalanche` in `consensus`
[INFO] [stdout]    |                 no `ConsensusEngine` in `consensus`
[INFO] [stdout] 10 |     error::{DagError, Result},
[INFO] [stdout]    |                       ^^^^^^ no `Result` in `error`
[INFO] [stdout] 11 |     node::{NodeId, NodeState},
[INFO] [stdout]    |            ^^^^^^ no `NodeId` in `node`
[INFO] [stdout] 12 |     tip_selection::TipSelector,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ no `TipSelector` in `tip_selection`
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider importing one of these items instead:
[INFO] [stdout]            std::fmt::Result
[INFO] [stdout]            std::io::Result
[INFO] [stdout]            std::result::Result
[INFO] [stdout]            std::thread::Result
[INFO] [stdout]            core::fmt::Result
[INFO] [stdout]            core::result::Result
[INFO] [stdout]            anyhow::Result
[INFO] [stdout]            bincode::Result
[INFO] [stdout]            futures::io::Result
[INFO] [stdout]            qudag_dag::Result
[INFO] [stdout]            serde_json::Result
[INFO] [stdout]            tokio::io::Result
[INFO] [stdout] help: a similar name exists in the module
[INFO] [stdout]    |
[INFO] [stdout]  9 -     consensus::{ConsensusEngine, QrAvalanche, Vote, VoteResult},
[INFO] [stdout]  9 +     consensus::{ConsensusError, QrAvalanche, Vote, VoteResult},
[INFO] [stdout]    |
[INFO] [stdout] help: a similar name exists in the module
[INFO] [stdout]    |
[INFO] [stdout]  9 -     consensus::{ConsensusEngine, QrAvalanche, Vote, VoteResult},
[INFO] [stdout]  9 +     consensus::{ConsensusEngine, QRAvalanche, Vote, VoteResult},
[INFO] [stdout]    |
[INFO] [stdout] help: a similar name exists in the module
[INFO] [stdout]    |
[INFO] [stdout] 11 -     node::{NodeId, NodeState},
[INFO] [stdout] 11 +     node::{Node, NodeState},
[INFO] [stdout]    |
[INFO] [stdout] help: a similar name exists in the module
[INFO] [stdout]    |
[INFO] [stdout] 12 -     tip_selection::TipSelector,
[INFO] [stdout] 12 +     tip_selection::TipSelection,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `blake3::Hash`
[INFO] [stdout]  --> tests/concurrent_consensus_tests.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use blake3::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DagError` and `Graph`
[INFO] [stdout]   --> tests/concurrent_consensus_tests.rs:10:13
[INFO] [stdout]    |
[INFO] [stdout] 10 |     error::{DagError, Result},
[INFO] [stdout]    |             ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 13 |     Graph, Node, QrDag,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mutex`
[INFO] [stdout]   --> tests/concurrent_consensus_tests.rs:20:28
[INFO] [stdout]    |
[INFO] [stdout] 20 | use tokio::sync::{Barrier, Mutex, RwLock};
[INFO] [stdout]    |                            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::time::sleep`
[INFO] [stdout]   --> tests/concurrent_consensus_tests.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use tokio::time::sleep;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `blake3::Hash` cannot be dereferenced
[INFO] [stdout]   --> tests/concurrent_consensus_tests.rs:36:24
[INFO] [stdout]    |
[INFO] [stdout] 36 |     let genesis_hash = *genesis_node.hash();
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> tests/liveness_tests.rs:71:13
[INFO] [stdout]    |
[INFO] [stdout] 71 |             id,
[INFO] [stdout]    |             ^^ expected `VertexId`, found `String`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> tests/liveness_tests.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |             parents,
[INFO] [stdout]    |             ^^^^^^^ expected `Vec<VertexId>`, found `Vec<String>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Vec<VertexId>`
[INFO] [stdout]               found struct `Vec<String>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `add_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]   --> tests/concurrent_consensus_tests.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 37 |     dag.add_node(genesis_node).await.unwrap();
[INFO] [stdout]    |         ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> tests/concurrent_consensus_tests.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     dag.add_node(genesis_node).await.unwrap();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated item named `Final` found for struct `Confidence` in the current scope
[INFO] [stdout]   --> tests/liveness_tests.rs:90:26
[INFO] [stdout]    |
[INFO] [stdout] 90 |         Some(Confidence::Final)
[INFO] [stdout]    |                          ^^^^^ associated item not found in `Confidence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated item named `Final` found for struct `Confidence` in the current scope
[INFO] [stdout]    --> tests/liveness_tests.rs:124:59
[INFO] [stdout]     |
[INFO] [stdout] 124 |     assert_eq!(dag.get_confidence("C1"), Some(Confidence::Final));
[INFO] [stdout]     |                                                           ^^^^^ associated item not found in `Confidence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated item named `Final` found for struct `Confidence` in the current scope
[INFO] [stdout]    --> tests/liveness_tests.rs:125:59
[INFO] [stdout]     |
[INFO] [stdout] 125 |     assert_eq!(dag.get_confidence("C2"), Some(Confidence::Final));
[INFO] [stdout]     |                                                           ^^^^^ associated item not found in `Confidence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `blake3::Hash` cannot be dereferenced
[INFO] [stdout]   --> tests/concurrent_consensus_tests.rs:74:33
[INFO] [stdout]    |
[INFO] [stdout] 74 |                 let node_hash = *node.hash();
[INFO] [stdout]    |                                 ^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no associated item named `Final` found for struct `Confidence` in the current scope
[INFO] [stdout]    --> tests/liveness_tests.rs:159:58
[INFO] [stdout]     |
[INFO] [stdout] 159 |     assert_eq!(dag.get_confidence("D"), Some(Confidence::Final));
[INFO] [stdout]     |                                                          ^^^^^ associated item not found in `Confidence`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `add_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]   --> tests/concurrent_consensus_tests.rs:76:33
[INFO] [stdout]    |
[INFO] [stdout] 76 |                 match dag_clone.add_node(node).await {
[INFO] [stdout]    |                                 ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:110:55
[INFO] [stdout]     |
[INFO] [stdout] 110 |         let (thread_id, successful, failed, hashes) = handle.await.unwrap();
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0432, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `node_count` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:120:30
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let final_dag_size = dag.node_count().await;
[INFO] [stdout]     |                              ^^^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:141:16
[INFO] [stdout]     |
[INFO] [stdout] 141 |         if dag.get_node(hash).await.is_some() {
[INFO] [stdout]     |                ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 |         if dag.get_node(hash).await.is_some() {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `blake3::Hash` cannot be dereferenced
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:165:24
[INFO] [stdout]     |
[INFO] [stdout] 165 |     let genesis_hash = *genesis_node.hash();
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `add_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 |     dag.add_node(genesis_node).await.unwrap();
[INFO] [stdout]     |         ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:166:5
[INFO] [stdout]     |
[INFO] [stdout] 166 |     dag.add_node(genesis_node).await.unwrap();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `blake3::Hash` cannot be dereferenced
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:174:25
[INFO] [stdout]     |
[INFO] [stdout] 174 |         let node_hash = *node.hash();
[INFO] [stdout]     |                         ^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `add_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:175:13
[INFO] [stdout]     |
[INFO] [stdout] 175 |         dag.add_node(node).await.unwrap();
[INFO] [stdout]     |             ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:175:9
[INFO] [stdout]     |
[INFO] [stdout] 175 |         dag.add_node(node).await.unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: can't compare `Vec<blake3::Hash>` with `&Vec<blake3::Hash>`
[INFO] [stdout]    --> src/node.rs:154:9
[INFO] [stdout]     |
[INFO] [stdout] 154 |         assert_eq!(node.parents(), &parents);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `Vec<blake3::Hash> == &Vec<blake3::Hash>`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PartialEq<&Vec<blake3::Hash>>` is not implemented for `Vec<blake3::Hash>`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:276:20
[INFO] [stdout]     |
[INFO] [stdout] 276 |                 if state.is_finalized() {
[INFO] [stdout]     |                    ^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `blake3::Hash` cannot be dereferenced
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:312:24
[INFO] [stdout]     |
[INFO] [stdout] 312 |     let genesis_hash = *genesis_node.hash();
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `qudag-dag` (test "liveness_tests") due to 12 previous errors
[INFO] [stdout] error[E0599]: no method named `add_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:313:9
[INFO] [stdout]     |
[INFO] [stdout] 313 |     dag.add_node(genesis_node).await.unwrap();
[INFO] [stdout]     |         ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:313:5
[INFO] [stdout]     |
[INFO] [stdout] 313 |     dag.add_node(genesis_node).await.unwrap();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `blake3::Hash` cannot be dereferenced
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:321:25
[INFO] [stdout]     |
[INFO] [stdout] 321 |         let node_hash = *node.hash();
[INFO] [stdout]     |                         ^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `add_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:322:13
[INFO] [stdout]     |
[INFO] [stdout] 322 |         dag.add_node(node).await.unwrap();
[INFO] [stdout]     |             ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:322:9
[INFO] [stdout]     |
[INFO] [stdout] 322 |         dag.add_node(node).await.unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:348:67
[INFO] [stdout]     |
[INFO] [stdout] 348 |                 let current_state = if let Some(node) = dag_clone.get_node(&node_hash).await {
[INFO] [stdout]     |                                                                   ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:349:21
[INFO] [stdout]     |
[INFO] [stdout] 349 |                     node.state()
[INFO] [stdout]     |                     ^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Processing` found for enum `NodeState` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:363:32
[INFO] [stdout]     |
[INFO] [stdout] 363 |                     NodeState::Processing => {
[INFO] [stdout]     |                                ^^^^^^^^^^ variant or associated item not found in `NodeState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]    --> src/consensus_tests.rs:146:60
[INFO] [stdout]     |
[INFO] [stdout] 146 |                 create_test_vertex(vertex_id, vec![parents.last().unwrap()])
[INFO] [stdout]     |                                                            ^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `str`
[INFO] [stdout] note: required by a bound in `core::slice::<impl [T]>::last`
[INFO] [stdout]    --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/core/src/slice/mod.rs:279:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]    --> src/consensus_tests.rs:146:52
[INFO] [stdout]     |
[INFO] [stdout] 146 |                 create_test_vertex(vertex_id, vec![parents.last().unwrap()])
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `str`
[INFO] [stdout]     = note: required for `Vec<str>` to implement `Deref`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]    --> src/consensus_tests.rs:143:37
[INFO] [stdout]     |
[INFO] [stdout] 143 |             let vertex = if parents.is_empty() {
[INFO] [stdout]     |                                     ^^^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `str`
[INFO] [stdout] note: required by a bound in `Vec::<T, A>::is_empty`
[INFO] [stdout]    --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/alloc/src/vec/mod.rs:2936:5
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]    --> src/consensus_tests.rs:140:27
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let mut parents = vec![];
[INFO] [stdout]     |                           ^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `str`
[INFO] [stdout] note: required by an implicit `Sized` bound in `Vec`
[INFO] [stdout]    --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/alloc/src/vec/mod.rs:434:1
[INFO] [stdout]     = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the size for values of type `str` cannot be known at compilation time
[INFO] [stdout]    --> src/consensus_tests.rs:140:27
[INFO] [stdout]     |
[INFO] [stdout] 140 |         let mut parents = vec![];
[INFO] [stdout]     |                           ^^^^^^ doesn't have a size known at compile-time
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Sized` is not implemented for `str`
[INFO] [stdout] note: required by a bound in `Vec::<T>::new`
[INFO] [stdout]    --> /rustc/3b4dd9bf1410f8da6329baa36ce5e37673cbbd1f/library/alloc/src/vec/mod.rs:459:5
[INFO] [stdout]     = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Processing` found for enum `NodeState` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:360:40
[INFO] [stdout]     |
[INFO] [stdout] 360 | ...                   NodeState::Processing
[INFO] [stdout]     |                                  ^^^^^^^^^^ variant or associated item not found in `NodeState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `push` exists for struct `Vec<str>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/consensus_tests.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |             parents.push(*vertex_id);
[INFO] [stdout]     |                     ^^^^ method cannot be called on `Vec<str>` due to unsatisfied trait bounds
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `str: Sized`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `update_node_state` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:376:33
[INFO] [stdout]     |
[INFO] [stdout] 376 |                 match dag_clone.update_node_state(&node_hash, next_state).await {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:381:63
[INFO] [stdout]     |
[INFO] [stdout] 381 |                         if let Some(updated_node) = dag_clone.get_node(&node_hash).await {
[INFO] [stdout]     |                                                               ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:382:32
[INFO] [stdout]     |
[INFO] [stdout] 382 | ...                   if updated_node.state() != next_state {
[INFO] [stdout]     |                          ^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:449:33
[INFO] [stdout]     |
[INFO] [stdout] 449 |         if let Some(node) = dag.get_node(node_hash).await {
[INFO] [stdout]     |                                 ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:450:33
[INFO] [stdout]     |
[INFO] [stdout] 450 |             *state_counts.entry(node.state()).or_insert(0) += 1;
[INFO] [stdout]     |                                 ^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `blake3::Hash` cannot be dereferenced
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:480:24
[INFO] [stdout]     |
[INFO] [stdout] 480 |     let genesis_hash = *genesis_node.hash();
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `add_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:481:9
[INFO] [stdout]     |
[INFO] [stdout] 481 |     dag.add_node(genesis_node).await.unwrap();
[INFO] [stdout]     |         ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:481:5
[INFO] [stdout]     |
[INFO] [stdout] 481 |     dag.add_node(genesis_node).await.unwrap();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `blake3::Hash` cannot be dereferenced
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:497:25
[INFO] [stdout]     |
[INFO] [stdout] 497 |         let node_hash = *node.hash();
[INFO] [stdout]     |                         ^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `Vec<_>`
[INFO] [stdout]    --> src/invariant_tests.rs:187:17
[INFO] [stdout]     |
[INFO] [stdout] 187 |             let mut vertex_ids = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |                         parents.push(vertex_ids[j].as_str());
[INFO] [stdout]     |                                      ------------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `vertex_ids` an explicit type, where the placeholders `_` are specified
[INFO] [stdout]     |
[INFO] [stdout] 187 |             let mut vertex_ids: Vec<T> = Vec::new();
[INFO] [stdout]     |                               ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `add_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:498:13
[INFO] [stdout]     |
[INFO] [stdout] 498 |         dag.add_node(node).await.unwrap();
[INFO] [stdout]     |             ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:498:9
[INFO] [stdout]     |
[INFO] [stdout] 498 |         dag.add_node(node).await.unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:530:42
[INFO] [stdout]     |
[INFO] [stdout] 530 | ...                   if dag_clone.get_node(tip).await.is_none() {
[INFO] [stdout]     |                                    ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:530:32
[INFO] [stdout]     |
[INFO] [stdout] 530 | ...                   if dag_clone.get_node(tip).await.is_none() {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:570:74
[INFO] [stdout]     |
[INFO] [stdout] 570 |         let (selector_id, successful, failed, unique_tips, tip_counts) = handle.await.unwrap();
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:576:13
[INFO] [stdout]     |
[INFO] [stdout] 576 |             unique_tips.len()
[INFO] [stdout]     |             ^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `Vec<_>`
[INFO] [stdout]    --> src/invariant_tests.rs:332:17
[INFO] [stdout]     |
[INFO] [stdout] 332 |             let mut vertex_ids = Vec::new();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |                     .map(|&p| vertex_ids[p].as_str())
[INFO] [stdout]     |                               ------------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `vertex_ids` an explicit type, where the placeholders `_` are specified
[INFO] [stdout]     |
[INFO] [stdout] 332 |             let mut vertex_ids: Vec<T> = Vec::new();
[INFO] [stdout]     |                               ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:612:17
[INFO] [stdout]     |
[INFO] [stdout] 612 |             dag.get_node(tip).await.is_some(),
[INFO] [stdout]     |                 ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:612:13
[INFO] [stdout]     |
[INFO] [stdout] 612 |             dag.get_node(tip).await.is_some(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `blake3::Hash` cannot be dereferenced
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:632:24
[INFO] [stdout]     |
[INFO] [stdout] 632 |     let genesis_hash = *genesis_node.hash();
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `add_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:633:9
[INFO] [stdout]     |
[INFO] [stdout] 633 |     dag.add_node(genesis_node).await.unwrap();
[INFO] [stdout]     |         ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:633:5
[INFO] [stdout]     |
[INFO] [stdout] 633 |     dag.add_node(genesis_node).await.unwrap();
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:654:25
[INFO] [stdout]     |
[INFO] [stdout] 654 |                     let nodes = node_list_clone.read().await;
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout] 655 |                     if nodes.is_empty() {
[INFO] [stdout]     |                        ----- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `nodes` an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 654 |                     let nodes: /* Type */ = node_list_clone.read().await;
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `blake3::Hash` cannot be dereferenced
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:668:33
[INFO] [stdout]     |
[INFO] [stdout] 668 |                 let node_hash = *node.hash();
[INFO] [stdout]     |                                 ^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/invariant_tests.rs:499:21
[INFO] [stdout]     |
[INFO] [stdout] 498 |                 let attack_result = match attack {
[INFO] [stdout]     |                                           ------ this expression has type `&&str`
[INFO] [stdout] 499 |                     "duplicate_vertex" => {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^ expected `&&str`, found `&str`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&&_`
[INFO] [stdout]                found reference `&'static _`
[INFO] [stdout] help: consider dereferencing to access the inner value using the Deref trait
[INFO] [stdout]     |
[INFO] [stdout] 498 |                 let attack_result = match *attack {
[INFO] [stdout]     |                                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/invariant_tests.rs:508:21
[INFO] [stdout]     |
[INFO] [stdout] 498 |                 let attack_result = match attack {
[INFO] [stdout]     |                                           ------ this expression has type `&&str`
[INFO] [stdout] ...
[INFO] [stdout] 508 |                     "invalid_parent" => {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^ expected `&&str`, found `&str`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&&_`
[INFO] [stdout]                found reference `&'static _`
[INFO] [stdout] help: consider dereferencing to access the inner value using the Deref trait
[INFO] [stdout]     |
[INFO] [stdout] 498 |                 let attack_result = match *attack {
[INFO] [stdout]     |                                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/invariant_tests.rs:516:21
[INFO] [stdout]     |
[INFO] [stdout] 498 |                 let attack_result = match attack {
[INFO] [stdout]     |                                           ------ this expression has type `&&str`
[INFO] [stdout] ...
[INFO] [stdout] 516 |                     "circular_reference" => {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^ expected `&&str`, found `&str`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&&_`
[INFO] [stdout]                found reference `&'static _`
[INFO] [stdout] help: consider dereferencing to access the inner value using the Deref trait
[INFO] [stdout]     |
[INFO] [stdout] 498 |                 let attack_result = match *attack {
[INFO] [stdout]     |                                           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `add_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:670:30
[INFO] [stdout]     |
[INFO] [stdout] 670 |                 if dag_clone.add_node(node).await.is_ok() {
[INFO] [stdout]     |                              ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:670:20
[INFO] [stdout]     |
[INFO] [stdout] 670 |                 if dag_clone.add_node(node).await.is_ok() {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:675:29
[INFO] [stdout]     |
[INFO] [stdout] 675 |                         let mut nodes = node_list_clone.write().await;
[INFO] [stdout]     |                             ^^^^^^^^^
[INFO] [stdout] 676 |                         nodes.push(node_hash);
[INFO] [stdout]     |                         ----- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `nodes` an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 675 |                         let mut nodes: /* Type */ = node_list_clone.write().await;
[INFO] [stdout]     |                                      ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:708:25
[INFO] [stdout]     |
[INFO] [stdout] 708 |                     let nodes = node_list_clone.read().await;
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout] 709 |                     if nodes.is_empty() {
[INFO] [stdout]     |                        ----- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `nodes` an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 708 |                     let nodes: /* Type */ = node_list_clone.read().await;
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:716:47
[INFO] [stdout]     |
[INFO] [stdout] 716 |                 if let Some(node) = dag_clone.get_node(&target_hash).await {
[INFO] [stdout]     |                                               ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:717:41
[INFO] [stdout]     |
[INFO] [stdout] 717 |                     let current_state = node.state();
[INFO] [stdout]     |                                         ^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Processing` found for enum `NodeState` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:720:36
[INFO] [stdout]     |
[INFO] [stdout] 720 |                         NodeState::Processing => {
[INFO] [stdout]     |                                    ^^^^^^^^^^ variant or associated item not found in `NodeState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant or associated item named `Processing` found for enum `NodeState` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:719:58
[INFO] [stdout]     |
[INFO] [stdout] 719 |                         NodeState::Pending => NodeState::Processing,
[INFO] [stdout]     |                                                          ^^^^^^^^^^ variant or associated item not found in `NodeState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `update_node_state` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:732:26
[INFO] [stdout]     |
[INFO] [stdout] 731 |                       if dag_clone
[INFO] [stdout]     |  ________________________-
[INFO] [stdout] 732 | |                         .update_node_state(&target_hash, next_state)
[INFO] [stdout]     | |                         -^^^^^^^^^^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout]     | |_________________________|
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:731:24
[INFO] [stdout]     |
[INFO] [stdout] 731 |                       if dag_clone
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 732 | |                         .update_node_state(&target_hash, next_state)
[INFO] [stdout] 733 | |                         .await
[INFO] [stdout]     | |______________________________^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:739:63
[INFO] [stdout]     |
[INFO] [stdout] 739 |                         if let Some(updated_node) = dag_clone.get_node(&target_hash).await {
[INFO] [stdout]     |                                                               ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:740:32
[INFO] [stdout]     |
[INFO] [stdout] 740 | ...                   if updated_node.state() != next_state {
[INFO] [stdout]     |                          ^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:778:25
[INFO] [stdout]     |
[INFO] [stdout] 778 |                     let nodes = node_list_clone.read().await;
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout] 779 |                     if nodes.is_empty() {
[INFO] [stdout]     |                        ----- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `nodes` an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 778 |                     let nodes: /* Type */ = node_list_clone.read().await;
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:785:30
[INFO] [stdout]     |
[INFO] [stdout] 785 |                 if dag_clone.get_node(&target_hash).await.is_some() {
[INFO] [stdout]     |                              ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:785:20
[INFO] [stdout]     |
[INFO] [stdout] 785 |                 if dag_clone.get_node(&target_hash).await.is_some() {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `node_count` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:790:39
[INFO] [stdout]     |
[INFO] [stdout] 790 |                 let _size = dag_clone.node_count().await;
[INFO] [stdout]     |                                       ^^^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `node_count` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:831:30
[INFO] [stdout]     |
[INFO] [stdout] 831 |     let final_dag_size = dag.node_count().await;
[INFO] [stdout]     |                              ^^^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:832:32
[INFO] [stdout]     |
[INFO] [stdout] 832 |     let final_node_list_size = shared_node_list.read().await.len();
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `blake3::Hash` cannot be dereferenced
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:878:28
[INFO] [stdout]     |
[INFO] [stdout] 878 |         let genesis_hash = *genesis_node.hash();
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `add_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:879:13
[INFO] [stdout]     |
[INFO] [stdout] 879 |         dag.add_node(genesis_node).await.unwrap();
[INFO] [stdout]     |             ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:879:9
[INFO] [stdout]     |
[INFO] [stdout] 879 |         dag.add_node(genesis_node).await.unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `blake3::Hash` cannot be dereferenced
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:899:33
[INFO] [stdout]     |
[INFO] [stdout] 899 |                 let node_hash = *node.hash();
[INFO] [stdout]     |                                 ^^^^^^^^^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `add_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:901:33
[INFO] [stdout]     |
[INFO] [stdout] 901 |                 match dag_clone.add_node(node).await {
[INFO] [stdout]     |                                 ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:915:33
[INFO] [stdout]     |
[INFO] [stdout] 915 |             if let Some(hash) = handle.await.unwrap() {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `node_count` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:926:46
[INFO] [stdout]     |
[INFO] [stdout] 926 |         println!("  Final DAG size: {}", dag.node_count().await);
[INFO] [stdout]     |                                              ^^^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_node` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:934:53
[INFO] [stdout]     |
[INFO] [stdout] 934 |                 tokio::spawn(async move { dag_clone.get_node(&hash).await.is_some() })
[INFO] [stdout]     |                                                     ^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:934:43
[INFO] [stdout]     |
[INFO] [stdout] 934 |                 tokio::spawn(async move { dag_clone.get_node(&hash).await.is_some() })
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:939:16
[INFO] [stdout]     |
[INFO] [stdout] 939 |             if handle.await.unwrap() {
[INFO] [stdout]     |                ^^^^^^^^^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `node_count` found for struct `Arc<DAGConsensus>` in the current scope
[INFO] [stdout]    --> tests/concurrent_consensus_tests.rs:958:17
[INFO] [stdout]     |
[INFO] [stdout] 958 |             dag.node_count().await,
[INFO] [stdout]     |                 ^^^^^^^^^^ method not found in `Arc<DAGConsensus>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/invariant_tests.rs:292:34
[INFO] [stdout]     |
[INFO] [stdout] 291 |                         let parents = if vertex_counter > 0 {
[INFO] [stdout]     |                             ------- borrow later stored here
[INFO] [stdout] 292 |                             vec![format!("V{}", vertex_counter - 1).as_str()]
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout] 293 |                         } else {
[INFO] [stdout]     |                         - temporary value is freed at the end of this statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `payload`
[INFO] [stdout]    --> src/invariant_tests.rs:287:22
[INFO] [stdout]     |
[INFO] [stdout] 287 |             for (op, payload) in operations {
[INFO] [stdout]     |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432, E0599, E0614.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/invariant_tests.rs:435:26
[INFO] [stdout]     |
[INFO] [stdout] 434 |                 let parents = if i > 0 {
[INFO] [stdout]     |                     ------- borrow later stored here
[INFO] [stdout] 435 |                     vec![format!("msg_{}", i - 1).as_str()]
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout] 436 |                 } else {
[INFO] [stdout]     |                 - temporary value is freed at the end of this statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     = note: this error originates in the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `message`
[INFO] [stdout]    --> src/invariant_tests.rs:432:21
[INFO] [stdout]     |
[INFO] [stdout] 432 |             for (i, message) in message_sequence.iter().enumerate() {
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_message`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `qudag-dag` (test "concurrent_consensus_tests") due to 78 previous errors; 4 warnings emitted
[INFO] [stdout] Some errors have detailed explanations: E0277, E0282, E0308, E0599, E0716.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `qudag-dag` (lib test) due to 14 previous errors; 3 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "07cf62338fe0cac29756e4700799de4018d0f4f4e5c41a9d05ff28459f7fbdc8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "07cf62338fe0cac29756e4700799de4018d0f4f4e5c41a9d05ff28459f7fbdc8", kill_on_drop: false }`
[INFO] [stdout] 07cf62338fe0cac29756e4700799de4018d0f4f4e5c41a9d05ff28459f7fbdc8
