[INFO] cloning repository https://github.com/4e84/hlnode-data-server [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/4e84/hlnode-data-server" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F4e84%2Fhlnode-data-server", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F4e84%2Fhlnode-data-server'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f5668376686c7de2c514f259252616ca5060d88e [INFO] testing 4e84/hlnode-data-server against beta-2026-04-21 for beta-1.96-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F4e84%2Fhlnode-data-server" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/4e84/hlnode-data-server [INFO] finished tweaking git repo https://github.com/4e84/hlnode-data-server [INFO] tweaked toml for git repo https://github.com/4e84/hlnode-data-server written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/4e84/hlnode-data-server on toolchain beta-2026-04-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/4e84/hlnode-data-server 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-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 7b3ac09f96ad4c94069ebaa4a1bcb5d6348d6995e9652224f1ae56df263250c4 [INFO] running `Command { std: "docker" "start" "-a" "7b3ac09f96ad4c94069ebaa4a1bcb5d6348d6995e9652224f1ae56df263250c4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7b3ac09f96ad4c94069ebaa4a1bcb5d6348d6995e9652224f1ae56df263250c4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7b3ac09f96ad4c94069ebaa4a1bcb5d6348d6995e9652224f1ae56df263250c4", kill_on_drop: false }` [INFO] [stdout] 7b3ac09f96ad4c94069ebaa4a1bcb5d6348d6995e9652224f1ae56df263250c4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8b108fc2c047cf0defa93920386b9f0ccf67ceca8d755818b6feb238af135670 [INFO] running `Command { std: "docker" "start" "-a" "8b108fc2c047cf0defa93920386b9f0ccf67ceca8d755818b6feb238af135670", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.104 [INFO] [stderr] Compiling cfg-if v1.0.1 [INFO] [stderr] Compiling libc v0.2.174 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling zeroize v1.8.1 [INFO] [stderr] Compiling typenum v1.18.0 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling const-oid v0.9.6 [INFO] [stderr] Compiling log v0.4.27 [INFO] [stderr] Compiling foldhash v0.1.5 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling ruint-macro v1.2.1 [INFO] [stderr] Compiling unicode-xid v0.2.6 [INFO] [stderr] Compiling tiny-keccak v2.0.2 [INFO] [stderr] Compiling memchr v2.7.5 [INFO] [stderr] Compiling base16ct v0.2.0 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Compiling der v0.7.10 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Compiling thiserror v2.0.12 [INFO] [stderr] Compiling cc v1.2.27 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling winnow v0.7.12 [INFO] [stderr] Compiling slab v0.4.10 [INFO] [stderr] Compiling proc-macro-error-attr2 v2.0.0 [INFO] [stderr] Compiling dunce v1.0.5 [INFO] [stderr] Compiling hashbrown v0.15.4 [INFO] [stderr] Compiling crc-catalog v2.4.0 [INFO] [stderr] Compiling bitflags v2.9.1 [INFO] [stderr] Compiling crc v3.3.0 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling zerocopy v0.8.26 [INFO] [stderr] Compiling rustls-pki-types v1.12.0 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling openssl v0.10.73 [INFO] [stderr] Compiling rustversion v1.0.21 [INFO] [stderr] Compiling futures-utils-wasm v0.1.0 [INFO] [stderr] Compiling iri-string v0.7.8 [INFO] [stderr] Compiling encoding_rs v0.8.35 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling mio v1.0.4 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling signal-hook-registry v1.4.5 [INFO] [stderr] Compiling socket2 v0.5.10 [INFO] [stderr] Compiling indexmap v2.10.0 [INFO] [stderr] Compiling ff v0.13.1 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling group v0.13.0 [INFO] [stderr] Compiling crypto-bigint v0.5.5 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling rustls v0.23.30 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling sec1 v0.7.3 [INFO] [stderr] Compiling spki v0.7.3 [INFO] [stderr] Compiling signature v2.2.0 [INFO] [stderr] Compiling rfc6979 v0.4.0 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling rand_core v0.9.3 [INFO] [stderr] Compiling regex-syntax v0.8.5 [INFO] [stderr] Compiling anstyle v1.0.11 [INFO] [stderr] Compiling anstyle-query v1.1.3 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling openssl-sys v0.9.109 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Compiling anstream v0.6.19 [INFO] [stderr] Compiling inotify-sys v0.1.5 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling flate2 v1.1.2 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling inotify v0.11.0 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling elliptic-curve v0.13.8 [INFO] [stderr] Compiling filetime v0.2.25 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling regex-automata v0.4.9 [INFO] [stderr] Compiling rand v0.9.1 [INFO] [stderr] Compiling nom v8.0.0 [INFO] [stderr] Compiling webpki-roots v1.0.2 [INFO] [stderr] Compiling ecdsa v0.16.9 [INFO] [stderr] Compiling utf-8 v0.7.6 [INFO] [stderr] Compiling notify-types v2.0.0 [INFO] [stderr] Compiling clap_lex v0.7.5 [INFO] [stderr] Compiling matchit v0.8.4 [INFO] [stderr] Compiling iana-time-zone v0.1.63 [INFO] [stderr] Compiling notify v8.0.0 [INFO] [stderr] Compiling clap_builder v4.5.42 [INFO] [stderr] Compiling k256 v0.13.4 [INFO] [stderr] Compiling regex v1.11.1 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling macro-string v0.1.4 [INFO] [stderr] Compiling syn-solidity v1.3.0 [INFO] [stderr] Compiling proc-macro-error2 v2.0.1 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling env_filter v0.1.3 [INFO] [stderr] Compiling env_logger v0.11.8 [INFO] [stderr] Compiling rustls-webpki v0.103.4 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling derive_more-impl v2.0.1 [INFO] [stderr] Compiling alloy-rlp-derive v0.3.12 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling auto_impl v1.3.0 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling num_enum_derive v0.7.4 [INFO] [stderr] Compiling tracing v0.1.41 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling clap_derive v4.5.41 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.0 [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling zerovec v0.11.2 [INFO] [stderr] Compiling zerotrie v0.2.2 [INFO] [stderr] Compiling pin-project v1.1.10 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling num_enum v0.7.4 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling derive_more v2.0.1 [INFO] [stderr] Compiling clap v4.5.42 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling tinystr v0.8.1 [INFO] [stderr] Compiling potential_utf v0.1.2 [INFO] [stderr] Compiling icu_collections v2.0.0 [INFO] [stderr] Compiling icu_locale_core v2.0.0 [INFO] [stderr] Compiling icu_provider v2.0.0 [INFO] [stderr] Compiling icu_properties v2.0.1 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling ruint v1.15.0 [INFO] [stderr] Compiling bytes v1.10.1 [INFO] [stderr] Compiling const-hex v1.14.1 [INFO] [stderr] Compiling alloy-sol-type-parser v1.3.0 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling serde_path_to_error v0.1.17 [INFO] [stderr] Compiling chrono v0.4.41 [INFO] [stderr] Compiling icu_normalizer v2.0.0 [INFO] [stderr] Compiling alloy-primitives v1.3.0 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling rayon v1.10.0 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling parking_lot v0.12.4 [INFO] [stderr] Compiling idna v1.0.3 [INFO] [stderr] Compiling dashmap v6.1.0 [INFO] [stderr] Compiling alloy-rlp v0.3.12 [INFO] [stderr] Compiling http v1.3.1 [INFO] [stderr] Compiling url v2.5.4 [INFO] [stderr] Compiling tokio v1.45.1 [INFO] [stderr] Compiling lru v0.13.0 [INFO] [stderr] Compiling alloy-json-abi v1.3.0 [INFO] [stderr] Compiling alloy-tx-macros v1.0.23 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling tungstenite v0.27.0 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling nybbles v0.4.1 [INFO] [stderr] Compiling alloy-sol-macro-input v1.3.0 [INFO] [stderr] Compiling axum-core v0.5.2 [INFO] [stderr] Compiling alloy-sol-macro-expander v1.3.0 [INFO] [stderr] Compiling alloy-eip7702 v0.6.1 [INFO] [stderr] Compiling alloy-serde v1.0.23 [INFO] [stderr] Compiling alloy-eip2930 v0.2.1 [INFO] [stderr] Compiling alloy-eip2124 v0.2.0 [INFO] [stderr] Compiling alloy-trie v0.9.0 [INFO] [stderr] Compiling alloy-signer v1.0.23 [INFO] [stderr] Compiling alloy-chains v0.2.6 [INFO] [stderr] Compiling alloy-eips v1.0.23 [INFO] [stderr] Compiling alloy-consensus v1.0.23 [INFO] [stderr] Compiling alloy-sol-macro v1.3.0 [INFO] [stderr] Compiling alloy-sol-types v1.3.0 [INFO] [stderr] Compiling tokio-util v0.7.15 [INFO] [stderr] Compiling tower v0.5.2 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling tokio-rustls v0.26.2 [INFO] [stderr] Compiling tokio-tungstenite v0.27.0 [INFO] [stderr] Compiling alloy-network-primitives v1.0.23 [INFO] [stderr] Compiling alloy-consensus-any v1.0.23 [INFO] [stderr] Compiling tower-http v0.6.6 [INFO] [stderr] Compiling h2 v0.4.11 [INFO] [stderr] Compiling tokio-stream v0.1.17 [INFO] [stderr] Compiling hyper v1.6.0 [INFO] [stderr] Compiling hyper-util v0.1.14 [INFO] [stderr] Compiling alloy-json-rpc v1.0.23 [INFO] [stderr] Compiling alloy-rpc-types-eth v1.0.23 [INFO] [stderr] Compiling alloy-dyn-abi v1.3.0 [INFO] [stderr] Compiling alloy-core v1.3.0 [INFO] [stderr] Compiling alloy-transport v1.0.23 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling axum v0.8.4 [INFO] [stderr] Compiling yawc v0.2.6 [INFO] [stderr] Compiling reqwest v0.12.22 [INFO] [stderr] Compiling alloy-rpc-types-any v1.0.23 [INFO] [stderr] Compiling alloy-rpc-types v1.0.22 [INFO] [stderr] Compiling alloy-network v1.0.23 [INFO] [stderr] Compiling alloy-transport-http v1.0.23 [INFO] [stderr] Compiling alloy-rpc-client v1.0.23 [INFO] [stderr] Compiling alloy-signer-local v1.0.23 [INFO] [stderr] Compiling alloy-provider v1.0.22 [INFO] [stderr] Compiling alloy-contract v1.0.22 [INFO] [stderr] Compiling alloy v1.0.22 [INFO] [stderr] Compiling server v0.1.0 (/opt/rustwide/workdir/server) [INFO] [stdout] warning: unused import: `computer::LiquidationComputer` [INFO] [stdout] --> server/src/liquidation/application/mod.rs:11:16 [INFO] [stdout] | [INFO] [stdout] 11 | pub(crate) use computer::LiquidationComputer; [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::str::FromStr` [INFO] [stdout] --> server/src/liquidation/infrastructure/event_watcher.rs:77:13 [INFO] [stdout] | [INFO] [stdout] 77 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> server/src/liquidation/infrastructure/event_watcher.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> server/src/liquidation/infrastructure/event_watcher.rs:168:13 [INFO] [stdout] | [INFO] [stdout] 168 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/liquidation/infrastructure/event_watcher.rs:374:15 [INFO] [stdout] | [INFO] [stdout] 374 | listener: std::sync::Arc>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: requested on the command line with `-W unused-qualifications` [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 374 - listener: std::sync::Arc>, [INFO] [stdout] 374 + listener: Arc>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/liquidation/infrastructure/event_watcher.rs:375:10 [INFO] [stdout] | [INFO] [stdout] 375 | dir: std::path::PathBuf, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 375 - dir: std::path::PathBuf, [INFO] [stdout] 375 + dir: PathBuf, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fill_adapter::FillAdapter` [INFO] [stdout] --> server/src/liquidation/infrastructure/mod.rs:19:16 [INFO] [stdout] | [INFO] [stdout] 19 | pub(crate) use fill_adapter::FillAdapter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `misc_event_adapter::MiscEventAdapter` [INFO] [stdout] --> server/src/liquidation/infrastructure/mod.rs:21:16 [INFO] [stdout] | [INFO] [stdout] 21 | pub(crate) use misc_event_adapter::MiscEventAdapter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `replica_cmd_adapter::ReplicaCmdAdapter` [INFO] [stdout] --> server/src/liquidation/infrastructure/mod.rs:22:16 [INFO] [stdout] | [INFO] [stdout] 22 | pub(crate) use replica_cmd_adapter::ReplicaCmdAdapter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MarkPriceUpdated` [INFO] [stdout] --> server/src/liquidation/orchestrator.rs:11:55 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::liquidation::domain::events::{DomainEvent, MarkPriceUpdated}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/liquidation/orchestrator.rs:99:75 [INFO] [stdout] | [INFO] [stdout] 99 | pub(crate) async fn tracked_coins(&self) -> std::collections::HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 99 - pub(crate) async fn tracked_coins(&self) -> std::collections::HashSet { [INFO] [stdout] 99 + pub(crate) async fn tracked_coins(&self) -> std::collections::HashSet { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AssetInfoSource` and `MarkPriceSource` [INFO] [stdout] --> server/src/liquidation/ports/mod.rs:10:25 [INFO] [stdout] | [INFO] [stdout] 10 | pub(crate) use traits::{AssetInfoSource, MarkPriceSource, UserStateSource}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ServiceState` [INFO] [stdout] --> server/src/liquidation/mod.rs:35:51 [INFO] [stdout] | [INFO] [stdout] 35 | LiquidationService, LiquidationServiceConfig, ServiceState, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/listeners/funding.rs:137:22 [INFO] [stdout] | [INFO] [stdout] 137 | let reader = std::io::BufReader::new(file); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 137 - let reader = std::io::BufReader::new(file); [INFO] [stdout] 137 + let reader = io::BufReader::new(file); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/servers/websocket_server.rs:619:41 [INFO] [stdout] | [INFO] [stdout] 619 | liquidation_service: Option>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 619 - liquidation_service: Option>>, [INFO] [stdout] 619 + liquidation_service: Option>>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `positions` [INFO] [stdout] --> server/src/liquidation/service.rs:146:17 [INFO] [stdout] | [INFO] [stdout] 146 | let positions = self.positions.read().await; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_positions` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `liquidation_service` [INFO] [stdout] --> server/src/servers/websocket_server.rs:355:5 [INFO] [stdout] | [INFO] [stdout] 355 | liquidation_service: Arc, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_liquidation_service` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `calculator` and `level_computer` are never read [INFO] [stdout] --> server/src/liquidation/application/computer.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub(crate) struct LiquidationComputer { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 21 | calculator: C, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 22 | level_computer: LevelComputerImpl, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `with_calculator`, `compute_price`, and `compute_levels` are never used [INFO] [stdout] --> server/src/liquidation/application/computer.rs:43:19 [INFO] [stdout] | [INFO] [stdout] 41 | impl LiquidationComputer { [INFO] [stdout] | ---------------------------------------------------------- associated items in this implementation [INFO] [stdout] 42 | /// Create a new computer with a custom calculator. [INFO] [stdout] 43 | pub(crate) fn with_calculator(calculator: C) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub(crate) fn compute_price( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub(crate) fn compute_levels( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `computer` is never read [INFO] [stdout] --> server/src/liquidation/application/service.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 49 | pub(crate) struct RealtimeLiquidationService { [INFO] [stdout] | -------------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 55 | computer: LiquidationComputer, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `start_bootstrap`, `cache_size`, `import_user_state`, `update_mark_price`, `compute_all_levels`, and `coins` are never used [INFO] [stdout] --> server/src/liquidation/application/service.rs:81:19 [INFO] [stdout] | [INFO] [stdout] 66 | impl RealtimeLiquidationService { [INFO] [stdout] | ------------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 81 | pub(crate) fn start_bootstrap(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | pub(crate) async fn cache_size(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 235 | pub(crate) async fn import_user_state(&self, user_state: UserState) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 281 | pub(crate) async fn update_mark_price(&self, coin: Coin, price: Px) -> Vec
{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 296 | pub(crate) async fn compute_all_levels(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 311 | pub(crate) async fn coins(&self) -> Vec { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `SharedService` is never used [INFO] [stdout] --> server/src/liquidation/application/service.rs:329:17 [INFO] [stdout] | [INFO] [stdout] 329 | pub(crate) type SharedService = Arc; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `time` is never read [INFO] [stdout] --> server/src/liquidation/domain/events.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub(crate) struct MarkPriceUpdated { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | pub time: u64, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MarkPriceUpdated` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `time` is never read [INFO] [stdout] --> server/src/liquidation/domain/events.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub(crate) struct PositionChanged { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 29 | pub time: u64, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PositionChanged` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `time` is never read [INFO] [stdout] --> server/src/liquidation/domain/events.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 34 | pub(crate) struct BalanceChanged { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 38 | pub time: u64, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BalanceChanged` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `CrossToIsolated`, `IsolatedToCross`, `ClosedPnl`, and `Fee` are never constructed [INFO] [stdout] --> server/src/liquidation/domain/events.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 43 | pub(crate) enum BalanceChangeReason { [INFO] [stdout] | ------------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 47 | CrossToIsolated { coin: Coin }, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 48 | IsolatedToCross { coin: Coin }, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 49 | FundingPayment, [INFO] [stdout] 50 | ClosedPnl { coin: Coin }, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 51 | Fee { coin: Coin }, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BalanceChangeReason` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `time` is never read [INFO] [stdout] --> server/src/liquidation/domain/events.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 56 | pub(crate) struct LeverageChanged { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 61 | pub time: u64, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LeverageChanged` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `time` is never read [INFO] [stdout] --> server/src/liquidation/domain/events.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 66 | pub(crate) struct IsolatedMarginChanged { [INFO] [stdout] | --------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 70 | pub time: u64, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IsolatedMarginChanged` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `IsolatedMarginChanged` is never constructed [INFO] [stdout] --> server/src/liquidation/domain/events.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 75 | pub(crate) enum DomainEvent { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 80 | IsolatedMarginChanged(IsolatedMarginChanged), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DomainEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `user` is never read [INFO] [stdout] --> server/src/liquidation/domain/state.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub(crate) struct UserState { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 20 | /// User address. [INFO] [stdout] 21 | pub user: Address, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `UserState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_liquidation_price` is never used [INFO] [stdout] --> server/src/liquidation/domain/types.rs:30:15 [INFO] [stdout] | [INFO] [stdout] 30 | pub(crate) fn calculate_liquidation_price( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_positive`, `is_negative`, `is_zero`, `to_px`, and `to_str` are never used [INFO] [stdout] --> server/src/liquidation/domain/types.rs:136:25 [INFO] [stdout] | [INFO] [stdout] 124 | impl SignedPx { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 136 | pub(crate) const fn is_positive(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub(crate) const fn is_negative(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 146 | pub(crate) const fn is_zero(self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | pub(crate) fn to_px(self) -> Option { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub(crate) fn to_str(self) -> String { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `populate_from_snapshots`, `populate_hardcoded`, `len`, and `is_empty` are never used [INFO] [stdout] --> server/src/liquidation/infrastructure/asset_mapper.rs:44:19 [INFO] [stdout] | [INFO] [stdout] 32 | impl AssetIndexMapper { [INFO] [stdout] | --------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 44 | pub(crate) fn populate_from_snapshots(&self, snapshots: &L2Snapshots) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | fn populate_hardcoded(&self, map: &mut HashMap) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub(crate) fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | pub(crate) fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> server/src/liquidation/infrastructure/fill_adapter.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 87 | pub(crate) struct RawFill { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 99 | pub hash: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 100 | #[serde(default)] [INFO] [stdout] 101 | pub oid: u64, [INFO] [stdout] | ^^^ [INFO] [stdout] 102 | #[serde(default)] [INFO] [stdout] 103 | pub crossed: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 104 | #[serde(rename = "feeToken", default)] [INFO] [stdout] 105 | pub fee_token: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 106 | #[serde(rename = "twapId", default)] [INFO] [stdout] 107 | pub twap_id: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 108 | #[serde(default)] [INFO] [stdout] 109 | pub cloid: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 110 | #[serde(default)] [INFO] [stdout] 111 | pub tid: u64, [INFO] [stdout] | ^^^ [INFO] [stdout] 112 | #[serde(default)] [INFO] [stdout] 113 | pub builder: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 114 | #[serde(rename = "builderFee", default)] [INFO] [stdout] 115 | pub builder_fee: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RawFill` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `local_time` and `block_number` are never read [INFO] [stdout] --> server/src/liquidation/infrastructure/fill_adapter.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 120 | pub(crate) struct RawFillBatch { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 121 | pub local_time: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 122 | pub block_time: String, [INFO] [stdout] 123 | pub block_number: u64, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RawFillBatch` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `compute_mid_price`, `to_event`, and `extract_mark_prices` are never used [INFO] [stdout] --> server/src/liquidation/infrastructure/mark_price_adapter.rs:26:19 [INFO] [stdout] | [INFO] [stdout] 16 | impl MarkPriceAdapter { [INFO] [stdout] | --------------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 26 | pub(crate) fn compute_mid_price(bids: &[Level], asks: &[Level]) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | pub(crate) fn to_event( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub(crate) fn extract_mark_prices(snapshots: &L2Snapshots) -> HashMap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `nonce` is never read [INFO] [stdout] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 101 | pub(crate) struct WithdrawDelta { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 105 | pub nonce: u64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WithdrawDelta` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `token`, `amount`, `native_token_fee`, `nonce`, and `fee_token` are never read [INFO] [stdout] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:111:9 [INFO] [stdout] | [INFO] [stdout] 110 | pub(crate) struct SpotTransferDelta { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 111 | pub token: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 112 | pub amount: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub native_token_fee: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 120 | #[serde(default)] [INFO] [stdout] 121 | pub nonce: u64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 122 | #[serde(rename = "feeToken", default)] [INFO] [stdout] 123 | pub fee_token: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SpotTransferDelta` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `coin`, `szi`, and `funding_rate` are never read [INFO] [stdout] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 128 | pub(crate) struct FundingDelta { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 129 | pub user: String, [INFO] [stdout] 130 | pub coin: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 131 | pub funding_amount: String, [INFO] [stdout] 132 | pub szi: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 133 | pub funding_rate: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FundingDelta` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `time` and `hash` are never read [INFO] [stdout] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:176:9 [INFO] [stdout] | [INFO] [stdout] 175 | pub(crate) struct RawMiscEvent { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 176 | pub time: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 177 | #[serde(default)] [INFO] [stdout] 178 | pub hash: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RawMiscEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `local_time` and `block_number` are never read [INFO] [stdout] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 184 | pub(crate) struct RawMiscEventBatch { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 185 | pub local_time: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 186 | pub block_time: String, [INFO] [stdout] 187 | pub block_number: u64, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RawMiscEventBatch` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_block_time` is never used [INFO] [stdout] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:192:15 [INFO] [stdout] | [INFO] [stdout] 192 | pub(crate) fn parse_block_time(block_time: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ReplicaCmd` is never constructed [INFO] [stdout] --> server/src/liquidation/infrastructure/replica_cmd_adapter.rs:47:19 [INFO] [stdout] | [INFO] [stdout] 47 | pub(crate) struct ReplicaCmd { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `nonce` is never read [INFO] [stdout] --> server/src/liquidation/infrastructure/replica_cmd_adapter.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 104 | pub(crate) struct SignedAction { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 107 | pub nonce: u64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SignedAction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `data_dir` is never read [INFO] [stdout] --> server/src/liquidation/orchestrator.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 17 | pub(crate) struct RealtimeLiquidationConfig { [INFO] [stdout] | ------------------------- field in this struct [INFO] [stdout] 18 | /// Base path for node data directories. [INFO] [stdout] 19 | pub data_dir: PathBuf, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RealtimeLiquidationConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `service` is never used [INFO] [stdout] --> server/src/liquidation/orchestrator.rs:83:19 [INFO] [stdout] | [INFO] [stdout] 42 | impl RealtimeOrchestrator { [INFO] [stdout] | ------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 83 | pub(crate) fn service(&self) -> &Arc { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `MarkPriceSource` is never used [INFO] [stdout] --> server/src/liquidation/ports/traits.rs:22:18 [INFO] [stdout] | [INFO] [stdout] 22 | pub(crate) trait MarkPriceSource: Send + Sync { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AssetInfo` is never constructed [INFO] [stdout] --> server/src/liquidation/ports/traits.rs:45:19 [INFO] [stdout] | [INFO] [stdout] 45 | pub(crate) struct AssetInfo { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MarginTier` is never constructed [INFO] [stdout] --> server/src/liquidation/ports/traits.rs:56:19 [INFO] [stdout] | [INFO] [stdout] 56 | pub(crate) struct MarginTier { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `with_tiers` are never used [INFO] [stdout] --> server/src/liquidation/ports/traits.rs:65:19 [INFO] [stdout] | [INFO] [stdout] 63 | impl AssetInfo { [INFO] [stdout] | -------------- associated functions in this implementation [INFO] [stdout] 64 | /// Create a new asset info with single-tier leverage. [INFO] [stdout] 65 | pub(crate) fn new(coin: Coin, max_leverage: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub(crate) fn with_tiers(coin: Coin, max_leverage: u32, tiers: Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `AssetInfoSource` is never used [INFO] [stdout] --> server/src/liquidation/ports/traits.rs:86:18 [INFO] [stdout] | [INFO] [stdout] 86 | pub(crate) trait AssetInfoSource: Send + Sync { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get`, `users_for_coin`, and `is_empty` are never used [INFO] [stdout] --> server/src/liquidation/traits.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub(crate) trait PositionStore: Send + Sync { [INFO] [stdout] | ------------- methods in this trait [INFO] [stdout] 20 | /// Get a position by user and coin. [INFO] [stdout] 21 | fn get(&self, user: &Address, coin: &Coin) -> Option<&Position>; [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | fn users_for_coin(&self, coin: &Coin) -> Vec<&Address>; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `on_fill` and `on_funding` are never used [INFO] [stdout] --> server/src/liquidation/traits.rs:96:8 [INFO] [stdout] | [INFO] [stdout] 94 | pub(crate) trait RefreshStrategy: Send + Sync { [INFO] [stdout] | --------------- methods in this trait [INFO] [stdout] 95 | /// Called when a fill is received. Returns users to refresh (if any). [INFO] [stdout] 96 | fn on_fill(&self, user: &Address, coin: &Coin) -> RefreshDecision; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | fn on_funding(&self) -> RefreshDecision; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RefreshDecision` is never used [INFO] [stdout] --> server/src/liquidation/traits.rs:104:17 [INFO] [stdout] | [INFO] [stdout] 104 | pub(crate) enum RefreshDecision { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_str` is never used [INFO] [stdout] --> server/src/liquidation/types.rs:58:19 [INFO] [stdout] | [INFO] [stdout] 15 | impl SignedSz { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 58 | pub(crate) fn to_str(self) -> String { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `funding_rate` and `funding_amount` are never read [INFO] [stdout] --> server/src/liquidation/types.rs:191:9 [INFO] [stdout] | [INFO] [stdout] 183 | pub(crate) struct FundingDelta { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 191 | pub funding_rate: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 192 | /// Funding amount paid/received. [INFO] [stdout] 193 | pub funding_amount: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FundingDelta` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DepositDelta` is never constructed [INFO] [stdout] --> server/src/liquidation/types.rs:203:19 [INFO] [stdout] | [INFO] [stdout] 203 | pub(crate) struct DepositDelta { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WithdrawDelta` is never constructed [INFO] [stdout] --> server/src/liquidation/types.rs:211:19 [INFO] [stdout] | [INFO] [stdout] 211 | pub(crate) struct WithdrawDelta { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SpotTransferDelta` is never constructed [INFO] [stdout] --> server/src/liquidation/types.rs:223:19 [INFO] [stdout] | [INFO] [stdout] 223 | pub(crate) struct SpotTransferDelta { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MiscEventType` is never used [INFO] [stdout] --> server/src/liquidation/types.rs:237:17 [INFO] [stdout] | [INFO] [stdout] 237 | pub(crate) enum MiscEventType { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MiscEvent` is never constructed [INFO] [stdout] --> server/src/liquidation/types.rs:257:19 [INFO] [stdout] | [INFO] [stdout] 257 | pub(crate) struct MiscEvent { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MiscEventBatch` is never constructed [INFO] [stdout] --> server/src/liquidation/types.rs:267:19 [INFO] [stdout] | [INFO] [stdout] 267 | pub(crate) struct MiscEventBatch { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `empty` is never used [INFO] [stdout] --> server/src/liquidation/types.rs:318:19 [INFO] [stdout] | [INFO] [stdout] 316 | impl LiquidationLevels { [INFO] [stdout] | ---------------------- associated function in this implementation [INFO] [stdout] 317 | /// Create empty liquidation levels for a coin. [INFO] [stdout] 318 | pub(crate) fn empty(coin: String, time: u64) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state` and `is_ready` are never used [INFO] [stdout] --> server/src/liquidation/service.rs:113:25 [INFO] [stdout] | [INFO] [stdout] 88 | / impl LiquidationService [INFO] [stdout] 89 | | where [INFO] [stdout] 90 | | I: InfoClient, [INFO] [stdout] 91 | | L: LevelComputer, [INFO] [stdout] 92 | | R: RefreshStrategy, [INFO] [stdout] | |_______________________- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 113 | pub(crate) async fn state(&self) -> ServiceState { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub(crate) async fn is_ready(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `handle_immediate_snapshot_with_liquidation` is never used [INFO] [stdout] --> server/src/servers/websocket_server.rs:617:14 [INFO] [stdout] | [INFO] [stdout] 588 | impl Subscription { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 617 | async fn handle_immediate_snapshot_with_liquidation( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `px` is never used [INFO] [stdout] --> server/src/types/mod.rs:42:19 [INFO] [stdout] | [INFO] [stdout] 36 | impl Level { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 42 | pub(crate) fn px(&self) -> &str { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> server/src/types/node_data.rs:170:11 [INFO] [stdout] | [INFO] [stdout] 170 | Other(serde_json::Value), [INFO] [stdout] | ----- ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `MiscEventInner` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 170 - Other(serde_json::Value), [INFO] [stdout] 170 + Other(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAULT_LIQUIDATION_SIG_FIGS` is never used [INFO] [stdout] --> server/src/types/subscription.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const DEFAULT_LIQUIDATION_SIG_FIGS: u32 = 3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `liquidation_sig_figs` and `liquidation_n_levels` are never used [INFO] [stdout] --> server/src/types/subscription.rs:116:19 [INFO] [stdout] | [INFO] [stdout] 36 | impl Subscription { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 116 | pub(crate) fn liquidation_sig_figs(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | pub(crate) fn liquidation_n_levels(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling binaries v0.1.0 (/opt/rustwide/workdir/binaries) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 15s [INFO] running `Command { std: "docker" "inspect" "8b108fc2c047cf0defa93920386b9f0ccf67ceca8d755818b6feb238af135670", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8b108fc2c047cf0defa93920386b9f0ccf67ceca8d755818b6feb238af135670", kill_on_drop: false }` [INFO] [stdout] 8b108fc2c047cf0defa93920386b9f0ccf67ceca8d755818b6feb238af135670 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 82f1c1c527f87a8a0267aa916e6975c43c6fd12887f991c46a746d8d9c6f35b8 [INFO] running `Command { std: "docker" "start" "-a" "82f1c1c527f87a8a0267aa916e6975c43c6fd12887f991c46a746d8d9c6f35b8", kill_on_drop: false }` [INFO] [stderr] Compiling bitflags v2.9.1 [INFO] [stderr] Compiling rustix v1.0.8 [INFO] [stderr] Compiling linux-raw-sys v0.9.4 [INFO] [stderr] Compiling openssl v0.10.73 [INFO] [stderr] Compiling tower-http v0.6.6 [INFO] [stderr] Compiling inotify v0.11.0 [INFO] [stderr] Compiling notify v8.0.0 [INFO] [stderr] Compiling tempfile v3.20.0 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling reqwest v0.12.22 [INFO] [stderr] Compiling alloy-transport-http v1.0.23 [INFO] [stderr] Compiling alloy-rpc-client v1.0.23 [INFO] [stderr] Compiling alloy-provider v1.0.22 [INFO] [stderr] Compiling alloy-contract v1.0.22 [INFO] [stderr] Compiling alloy v1.0.22 [INFO] [stderr] Compiling server v0.1.0 (/opt/rustwide/workdir/server) [INFO] [stdout] warning: unused import: `computer::LiquidationComputer` [INFO] [stdout] --> server/src/liquidation/application/mod.rs:11:16 [INFO] [stdout] | [INFO] [stdout] 11 | pub(crate) use computer::LiquidationComputer; [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::str::FromStr` [INFO] [stdout] --> server/src/liquidation/infrastructure/event_watcher.rs:77:13 [INFO] [stdout] | [INFO] [stdout] 77 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> server/src/liquidation/infrastructure/event_watcher.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> server/src/liquidation/infrastructure/event_watcher.rs:168:13 [INFO] [stdout] | [INFO] [stdout] 168 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/liquidation/infrastructure/event_watcher.rs:374:15 [INFO] [stdout] | [INFO] [stdout] 374 | listener: std::sync::Arc>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: requested on the command line with `-W unused-qualifications` [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 374 - listener: std::sync::Arc>, [INFO] [stdout] 374 + listener: Arc>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/liquidation/infrastructure/event_watcher.rs:375:10 [INFO] [stdout] | [INFO] [stdout] 375 | dir: std::path::PathBuf, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 375 - dir: std::path::PathBuf, [INFO] [stdout] 375 + dir: PathBuf, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fill_adapter::FillAdapter` [INFO] [stdout] --> server/src/liquidation/infrastructure/mod.rs:19:16 [INFO] [stdout] | [INFO] [stdout] 19 | pub(crate) use fill_adapter::FillAdapter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `misc_event_adapter::MiscEventAdapter` [INFO] [stdout] --> server/src/liquidation/infrastructure/mod.rs:21:16 [INFO] [stdout] | [INFO] [stdout] 21 | pub(crate) use misc_event_adapter::MiscEventAdapter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `replica_cmd_adapter::ReplicaCmdAdapter` [INFO] [stdout] --> server/src/liquidation/infrastructure/mod.rs:22:16 [INFO] [stdout] | [INFO] [stdout] 22 | pub(crate) use replica_cmd_adapter::ReplicaCmdAdapter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MarkPriceUpdated` [INFO] [stdout] --> server/src/liquidation/orchestrator.rs:11:55 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::liquidation::domain::events::{DomainEvent, MarkPriceUpdated}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/liquidation/orchestrator.rs:99:75 [INFO] [stdout] | [INFO] [stdout] 99 | pub(crate) async fn tracked_coins(&self) -> std::collections::HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 99 - pub(crate) async fn tracked_coins(&self) -> std::collections::HashSet { [INFO] [stdout] 99 + pub(crate) async fn tracked_coins(&self) -> std::collections::HashSet { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AssetInfoSource` and `MarkPriceSource` [INFO] [stdout] --> server/src/liquidation/ports/mod.rs:10:25 [INFO] [stdout] | [INFO] [stdout] 10 | pub(crate) use traits::{AssetInfoSource, MarkPriceSource, UserStateSource}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ServiceState` [INFO] [stdout] --> server/src/liquidation/mod.rs:35:51 [INFO] [stdout] | [INFO] [stdout] 35 | LiquidationService, LiquidationServiceConfig, ServiceState, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/listeners/funding.rs:137:22 [INFO] [stdout] | [INFO] [stdout] 137 | let reader = std::io::BufReader::new(file); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 137 - let reader = std::io::BufReader::new(file); [INFO] [stdout] 137 + let reader = io::BufReader::new(file); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/servers/websocket_server.rs:619:41 [INFO] [stdout] | [INFO] [stdout] 619 | liquidation_service: Option>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 619 - liquidation_service: Option>>, [INFO] [stdout] 619 + liquidation_service: Option>>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `computer::LiquidationComputer` [INFO] [stdout] --> server/src/liquidation/application/mod.rs:11:16 [INFO] [stdout] | [INFO] [stdout] 11 | pub(crate) use computer::LiquidationComputer; [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::str::FromStr` [INFO] [stdout] --> server/src/liquidation/infrastructure/event_watcher.rs:77:13 [INFO] [stdout] | [INFO] [stdout] 77 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> server/src/liquidation/infrastructure/event_watcher.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> server/src/liquidation/infrastructure/event_watcher.rs:168:13 [INFO] [stdout] | [INFO] [stdout] 168 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/liquidation/infrastructure/event_watcher.rs:374:15 [INFO] [stdout] | [INFO] [stdout] 374 | listener: std::sync::Arc>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: requested on the command line with `-W unused-qualifications` [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 374 - listener: std::sync::Arc>, [INFO] [stdout] 374 + listener: Arc>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/liquidation/infrastructure/event_watcher.rs:375:10 [INFO] [stdout] | [INFO] [stdout] 375 | dir: std::path::PathBuf, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 375 - dir: std::path::PathBuf, [INFO] [stdout] 375 + dir: PathBuf, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/liquidation/infrastructure/replica_cmd_adapter.rs:266:24 [INFO] [stdout] | [INFO] [stdout] 266 | let data = std::fs::read_to_string(prod_path).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 266 - let data = std::fs::read_to_string(prod_path).unwrap(); [INFO] [stdout] 266 + let data = fs::read_to_string(prod_path).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `fill_adapter::FillAdapter` [INFO] [stdout] --> server/src/liquidation/infrastructure/mod.rs:19:16 [INFO] [stdout] | [INFO] [stdout] 19 | pub(crate) use fill_adapter::FillAdapter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `misc_event_adapter::MiscEventAdapter` [INFO] [stdout] --> server/src/liquidation/infrastructure/mod.rs:21:16 [INFO] [stdout] | [INFO] [stdout] 21 | pub(crate) use misc_event_adapter::MiscEventAdapter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `replica_cmd_adapter::ReplicaCmdAdapter` [INFO] [stdout] --> server/src/liquidation/infrastructure/mod.rs:22:16 [INFO] [stdout] | [INFO] [stdout] 22 | pub(crate) use replica_cmd_adapter::ReplicaCmdAdapter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `MarkPriceUpdated` [INFO] [stdout] --> server/src/liquidation/orchestrator.rs:11:55 [INFO] [stdout] | [INFO] [stdout] 11 | use crate::liquidation::domain::events::{DomainEvent, MarkPriceUpdated}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/liquidation/orchestrator.rs:99:75 [INFO] [stdout] | [INFO] [stdout] 99 | pub(crate) async fn tracked_coins(&self) -> std::collections::HashSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 99 - pub(crate) async fn tracked_coins(&self) -> std::collections::HashSet { [INFO] [stdout] 99 + pub(crate) async fn tracked_coins(&self) -> std::collections::HashSet { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::liquidation::infrastructure::MarkPriceAdapter` [INFO] [stdout] --> server/src/liquidation/orchestrator.rs:481:13 [INFO] [stdout] | [INFO] [stdout] 481 | use crate::liquidation::infrastructure::MarkPriceAdapter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::liquidation::infrastructure::MarkPriceAdapter` [INFO] [stdout] --> server/src/liquidation/orchestrator.rs:498:13 [INFO] [stdout] | [INFO] [stdout] 498 | use crate::liquidation::infrastructure::MarkPriceAdapter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AssetInfoSource` and `MarkPriceSource` [INFO] [stdout] --> server/src/liquidation/ports/mod.rs:10:25 [INFO] [stdout] | [INFO] [stdout] 10 | pub(crate) use traits::{AssetInfoSource, MarkPriceSource, UserStateSource}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SignedSz` [INFO] [stdout] --> server/src/liquidation/service.rs:343:79 [INFO] [stdout] | [INFO] [stdout] 343 | use crate::liquidation::types::{FundingDelta, LiquidationLevel, Position, SignedSz}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ServiceState` [INFO] [stdout] --> server/src/liquidation/mod.rs:35:51 [INFO] [stdout] | [INFO] [stdout] 35 | LiquidationService, LiquidationServiceConfig, ServiceState, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/listeners/funding.rs:137:22 [INFO] [stdout] | [INFO] [stdout] 137 | let reader = std::io::BufReader::new(file); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 137 - let reader = std::io::BufReader::new(file); [INFO] [stdout] 137 + let reader = io::BufReader::new(file); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/listeners/funding.rs:367:28 [INFO] [stdout] | [INFO] [stdout] 367 | tokio::time::sleep(std::time::Duration::from_millis(50)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 367 - tokio::time::sleep(std::time::Duration::from_millis(50)).await; [INFO] [stdout] 367 + tokio::time::sleep(Duration::from_millis(50)).await; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/listeners/funding.rs:393:28 [INFO] [stdout] | [INFO] [stdout] 393 | tokio::time::sleep(std::time::Duration::from_millis(50)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 393 - tokio::time::sleep(std::time::Duration::from_millis(50)).await; [INFO] [stdout] 393 + tokio::time::sleep(Duration::from_millis(50)).await; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/listeners/funding.rs:447:28 [INFO] [stdout] | [INFO] [stdout] 447 | tokio::time::sleep(std::time::Duration::from_millis(50)).await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 447 - tokio::time::sleep(std::time::Duration::from_millis(50)).await; [INFO] [stdout] 447 + tokio::time::sleep(Duration::from_millis(50)).await; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/servers/websocket_server.rs:619:41 [INFO] [stdout] | [INFO] [stdout] 619 | liquidation_service: Option>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 619 - liquidation_service: Option>>, [INFO] [stdout] 619 + liquidation_service: Option>>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/servers/websocket_server.rs:835:32 [INFO] [stdout] | [INFO] [stdout] 835 | _positions: &[&crate::liquidation::types::Position], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 835 - _positions: &[&crate::liquidation::types::Position], [INFO] [stdout] 835 + _positions: &[&Position], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::subscription::DEFAULT_LEVELS` [INFO] [stdout] --> server/src/servers/websocket_server.rs:911:13 [INFO] [stdout] | [INFO] [stdout] 911 | use crate::types::subscription::DEFAULT_LEVELS; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/servers/websocket_server.rs:919:23 [INFO] [stdout] | [INFO] [stdout] 919 | let deposit = crate::liquidation::DomainEvent::BalanceChanged(BalanceChanged { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 919 - let deposit = crate::liquidation::DomainEvent::BalanceChanged(BalanceChanged { [INFO] [stdout] 919 + let deposit = DomainEvent::BalanceChanged(BalanceChanged { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/servers/websocket_server.rs:927:24 [INFO] [stdout] | [INFO] [stdout] 927 | let position = crate::liquidation::DomainEvent::PositionChanged(PositionChanged { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 927 - let position = crate::liquidation::DomainEvent::PositionChanged(PositionChanged { [INFO] [stdout] 927 + let position = DomainEvent::PositionChanged(PositionChanged { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary qualification [INFO] [stdout] --> server/src/servers/websocket_server.rs:940:26 [INFO] [stdout] | [INFO] [stdout] 940 | let mark_price = crate::liquidation::DomainEvent::MarkPriceUpdated(MarkPriceUpdated { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the unnecessary path segments [INFO] [stdout] | [INFO] [stdout] 940 - let mark_price = crate::liquidation::DomainEvent::MarkPriceUpdated(MarkPriceUpdated { [INFO] [stdout] 940 + let mark_price = DomainEvent::MarkPriceUpdated(MarkPriceUpdated { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `positions` [INFO] [stdout] --> server/src/liquidation/service.rs:146:17 [INFO] [stdout] | [INFO] [stdout] 146 | let positions = self.positions.read().await; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_positions` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `liquidation_service` [INFO] [stdout] --> server/src/servers/websocket_server.rs:355:5 [INFO] [stdout] | [INFO] [stdout] 355 | liquidation_service: Arc, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_liquidation_service` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `calculator` and `level_computer` are never read [INFO] [stdout] --> server/src/liquidation/application/computer.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub(crate) struct LiquidationComputer { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 21 | calculator: C, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 22 | level_computer: LevelComputerImpl, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `with_calculator`, `compute_price`, and `compute_levels` are never used [INFO] [stdout] --> server/src/liquidation/application/computer.rs:43:19 [INFO] [stdout] | [INFO] [stdout] 41 | impl LiquidationComputer { [INFO] [stdout] | ---------------------------------------------------------- associated items in this implementation [INFO] [stdout] 42 | /// Create a new computer with a custom calculator. [INFO] [stdout] 43 | pub(crate) fn with_calculator(calculator: C) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub(crate) fn compute_price( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | pub(crate) fn compute_levels( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `computer` is never read [INFO] [stdout] --> server/src/liquidation/application/service.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 49 | pub(crate) struct RealtimeLiquidationService { [INFO] [stdout] | -------------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 55 | computer: LiquidationComputer, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `start_bootstrap`, `cache_size`, `import_user_state`, `update_mark_price`, `compute_all_levels`, and `coins` are never used [INFO] [stdout] --> server/src/liquidation/application/service.rs:81:19 [INFO] [stdout] | [INFO] [stdout] 66 | impl RealtimeLiquidationService { [INFO] [stdout] | ------------------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 81 | pub(crate) fn start_bootstrap(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 189 | pub(crate) async fn cache_size(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 235 | pub(crate) async fn import_user_state(&self, user_state: UserState) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 281 | pub(crate) async fn update_mark_price(&self, coin: Coin, price: Px) -> Vec
{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 296 | pub(crate) async fn compute_all_levels(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 311 | pub(crate) async fn coins(&self) -> Vec { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `SharedService` is never used [INFO] [stdout] --> server/src/liquidation/application/service.rs:329:17 [INFO] [stdout] | [INFO] [stdout] 329 | pub(crate) type SharedService = Arc; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `time` is never read [INFO] [stdout] --> server/src/liquidation/domain/events.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub(crate) struct MarkPriceUpdated { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 16 | pub time: u64, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MarkPriceUpdated` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `time` is never read [INFO] [stdout] --> server/src/liquidation/domain/events.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub(crate) struct PositionChanged { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 29 | pub time: u64, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PositionChanged` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `time` is never read [INFO] [stdout] --> server/src/liquidation/domain/events.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 34 | pub(crate) struct BalanceChanged { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 38 | pub time: u64, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BalanceChanged` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `CrossToIsolated`, `IsolatedToCross`, `ClosedPnl`, and `Fee` are never constructed [INFO] [stdout] --> server/src/liquidation/domain/events.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 43 | pub(crate) enum BalanceChangeReason { [INFO] [stdout] | ------------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 47 | CrossToIsolated { coin: Coin }, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 48 | IsolatedToCross { coin: Coin }, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 49 | FundingPayment, [INFO] [stdout] 50 | ClosedPnl { coin: Coin }, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 51 | Fee { coin: Coin }, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BalanceChangeReason` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `time` is never read [INFO] [stdout] --> server/src/liquidation/domain/events.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 56 | pub(crate) struct LeverageChanged { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 61 | pub time: u64, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LeverageChanged` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `time` is never read [INFO] [stdout] --> server/src/liquidation/domain/events.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 66 | pub(crate) struct IsolatedMarginChanged { [INFO] [stdout] | --------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 70 | pub time: u64, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IsolatedMarginChanged` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `IsolatedMarginChanged` is never constructed [INFO] [stdout] --> server/src/liquidation/domain/events.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 75 | pub(crate) enum DomainEvent { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 80 | IsolatedMarginChanged(IsolatedMarginChanged), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DomainEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `user` is never read [INFO] [stdout] --> server/src/liquidation/domain/state.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub(crate) struct UserState { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] 20 | /// User address. [INFO] [stdout] 21 | pub user: Address, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `UserState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_liquidation_price` is never used [INFO] [stdout] --> server/src/liquidation/domain/types.rs:30:15 [INFO] [stdout] | [INFO] [stdout] 30 | pub(crate) fn calculate_liquidation_price( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `is_positive`, `is_negative`, `is_zero`, `to_px`, and `to_str` are never used [INFO] [stdout] --> server/src/liquidation/domain/types.rs:136:25 [INFO] [stdout] | [INFO] [stdout] 124 | impl SignedPx { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 136 | pub(crate) const fn is_positive(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 141 | pub(crate) const fn is_negative(self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 146 | pub(crate) const fn is_zero(self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | pub(crate) fn to_px(self) -> Option { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub(crate) fn to_str(self) -> String { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `populate_from_snapshots`, `populate_hardcoded`, `len`, and `is_empty` are never used [INFO] [stdout] --> server/src/liquidation/infrastructure/asset_mapper.rs:44:19 [INFO] [stdout] | [INFO] [stdout] 32 | impl AssetIndexMapper { [INFO] [stdout] | --------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 44 | pub(crate) fn populate_from_snapshots(&self, snapshots: &L2Snapshots) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | fn populate_hardcoded(&self, map: &mut HashMap) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub(crate) fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | pub(crate) fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> server/src/liquidation/infrastructure/fill_adapter.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 87 | pub(crate) struct RawFill { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 99 | pub hash: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 100 | #[serde(default)] [INFO] [stdout] 101 | pub oid: u64, [INFO] [stdout] | ^^^ [INFO] [stdout] 102 | #[serde(default)] [INFO] [stdout] 103 | pub crossed: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 104 | #[serde(rename = "feeToken", default)] [INFO] [stdout] 105 | pub fee_token: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 106 | #[serde(rename = "twapId", default)] [INFO] [stdout] 107 | pub twap_id: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 108 | #[serde(default)] [INFO] [stdout] 109 | pub cloid: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 110 | #[serde(default)] [INFO] [stdout] 111 | pub tid: u64, [INFO] [stdout] | ^^^ [INFO] [stdout] 112 | #[serde(default)] [INFO] [stdout] 113 | pub builder: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 114 | #[serde(rename = "builderFee", default)] [INFO] [stdout] 115 | pub builder_fee: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RawFill` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `local_time` and `block_number` are never read [INFO] [stdout] --> server/src/liquidation/infrastructure/fill_adapter.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 120 | pub(crate) struct RawFillBatch { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 121 | pub local_time: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 122 | pub block_time: String, [INFO] [stdout] 123 | pub block_number: u64, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RawFillBatch` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `compute_mid_price`, `to_event`, and `extract_mark_prices` are never used [INFO] [stdout] --> server/src/liquidation/infrastructure/mark_price_adapter.rs:26:19 [INFO] [stdout] | [INFO] [stdout] 16 | impl MarkPriceAdapter { [INFO] [stdout] | --------------------- associated functions in this implementation [INFO] [stdout] ... [INFO] [stdout] 26 | pub(crate) fn compute_mid_price(bids: &[Level], asks: &[Level]) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 85 | pub(crate) fn to_event( [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | pub(crate) fn extract_mark_prices(snapshots: &L2Snapshots) -> HashMap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `nonce` is never read [INFO] [stdout] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 101 | pub(crate) struct WithdrawDelta { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 105 | pub nonce: u64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WithdrawDelta` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `token`, `amount`, `native_token_fee`, `nonce`, and `fee_token` are never read [INFO] [stdout] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:111:9 [INFO] [stdout] | [INFO] [stdout] 110 | pub(crate) struct SpotTransferDelta { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 111 | pub token: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 112 | pub amount: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub native_token_fee: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 120 | #[serde(default)] [INFO] [stdout] 121 | pub nonce: u64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 122 | #[serde(rename = "feeToken", default)] [INFO] [stdout] 123 | pub fee_token: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SpotTransferDelta` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `coin`, `szi`, and `funding_rate` are never read [INFO] [stdout] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 128 | pub(crate) struct FundingDelta { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 129 | pub user: String, [INFO] [stdout] 130 | pub coin: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 131 | pub funding_amount: String, [INFO] [stdout] 132 | pub szi: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 133 | pub funding_rate: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FundingDelta` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `time` and `hash` are never read [INFO] [stdout] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:176:9 [INFO] [stdout] | [INFO] [stdout] 175 | pub(crate) struct RawMiscEvent { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 176 | pub time: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 177 | #[serde(default)] [INFO] [stdout] 178 | pub hash: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RawMiscEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `local_time` and `block_number` are never read [INFO] [stdout] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 184 | pub(crate) struct RawMiscEventBatch { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 185 | pub local_time: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 186 | pub block_time: String, [INFO] [stdout] 187 | pub block_number: u64, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RawMiscEventBatch` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_block_time` is never used [INFO] [stdout] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:192:15 [INFO] [stdout] | [INFO] [stdout] 192 | pub(crate) fn parse_block_time(block_time: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ReplicaCmd` is never constructed [INFO] [stdout] --> server/src/liquidation/infrastructure/replica_cmd_adapter.rs:47:19 [INFO] [stdout] | [INFO] [stdout] 47 | pub(crate) struct ReplicaCmd { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `nonce` is never read [INFO] [stdout] --> server/src/liquidation/infrastructure/replica_cmd_adapter.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 104 | pub(crate) struct SignedAction { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 107 | pub nonce: u64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SignedAction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `data_dir` is never read [INFO] [stdout] --> server/src/liquidation/orchestrator.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 17 | pub(crate) struct RealtimeLiquidationConfig { [INFO] [stdout] | ------------------------- field in this struct [INFO] [stdout] 18 | /// Base path for node data directories. [INFO] [stdout] 19 | pub data_dir: PathBuf, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RealtimeLiquidationConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `service` is never used [INFO] [stdout] --> server/src/liquidation/orchestrator.rs:83:19 [INFO] [stdout] | [INFO] [stdout] 42 | impl RealtimeOrchestrator { [INFO] [stdout] | ------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 83 | pub(crate) fn service(&self) -> &Arc { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `MarkPriceSource` is never used [INFO] [stdout] --> server/src/liquidation/ports/traits.rs:22:18 [INFO] [stdout] | [INFO] [stdout] 22 | pub(crate) trait MarkPriceSource: Send + Sync { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AssetInfo` is never constructed [INFO] [stdout] --> server/src/liquidation/ports/traits.rs:45:19 [INFO] [stdout] | [INFO] [stdout] 45 | pub(crate) struct AssetInfo { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MarginTier` is never constructed [INFO] [stdout] --> server/src/liquidation/ports/traits.rs:56:19 [INFO] [stdout] | [INFO] [stdout] 56 | pub(crate) struct MarginTier { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `with_tiers` are never used [INFO] [stdout] --> server/src/liquidation/ports/traits.rs:65:19 [INFO] [stdout] | [INFO] [stdout] 63 | impl AssetInfo { [INFO] [stdout] | -------------- associated functions in this implementation [INFO] [stdout] 64 | /// Create a new asset info with single-tier leverage. [INFO] [stdout] 65 | pub(crate) fn new(coin: Coin, max_leverage: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub(crate) fn with_tiers(coin: Coin, max_leverage: u32, tiers: Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `AssetInfoSource` is never used [INFO] [stdout] --> server/src/liquidation/ports/traits.rs:86:18 [INFO] [stdout] | [INFO] [stdout] 86 | pub(crate) trait AssetInfoSource: Send + Sync { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get`, `users_for_coin`, and `is_empty` are never used [INFO] [stdout] --> server/src/liquidation/traits.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub(crate) trait PositionStore: Send + Sync { [INFO] [stdout] | ------------- methods in this trait [INFO] [stdout] 20 | /// Get a position by user and coin. [INFO] [stdout] 21 | fn get(&self, user: &Address, coin: &Coin) -> Option<&Position>; [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | fn users_for_coin(&self, coin: &Coin) -> Vec<&Address>; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `on_fill` and `on_funding` are never used [INFO] [stdout] --> server/src/liquidation/traits.rs:96:8 [INFO] [stdout] | [INFO] [stdout] 94 | pub(crate) trait RefreshStrategy: Send + Sync { [INFO] [stdout] | --------------- methods in this trait [INFO] [stdout] 95 | /// Called when a fill is received. Returns users to refresh (if any). [INFO] [stdout] 96 | fn on_fill(&self, user: &Address, coin: &Coin) -> RefreshDecision; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 99 | fn on_funding(&self) -> RefreshDecision; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RefreshDecision` is never used [INFO] [stdout] --> server/src/liquidation/traits.rs:104:17 [INFO] [stdout] | [INFO] [stdout] 104 | pub(crate) enum RefreshDecision { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_str` is never used [INFO] [stdout] --> server/src/liquidation/types.rs:58:19 [INFO] [stdout] | [INFO] [stdout] 15 | impl SignedSz { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 58 | pub(crate) fn to_str(self) -> String { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `funding_rate` and `funding_amount` are never read [INFO] [stdout] --> server/src/liquidation/types.rs:191:9 [INFO] [stdout] | [INFO] [stdout] 183 | pub(crate) struct FundingDelta { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 191 | pub funding_rate: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 192 | /// Funding amount paid/received. [INFO] [stdout] 193 | pub funding_amount: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FundingDelta` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DepositDelta` is never constructed [INFO] [stdout] --> server/src/liquidation/types.rs:203:19 [INFO] [stdout] | [INFO] [stdout] 203 | pub(crate) struct DepositDelta { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WithdrawDelta` is never constructed [INFO] [stdout] --> server/src/liquidation/types.rs:211:19 [INFO] [stdout] | [INFO] [stdout] 211 | pub(crate) struct WithdrawDelta { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SpotTransferDelta` is never constructed [INFO] [stdout] --> server/src/liquidation/types.rs:223:19 [INFO] [stdout] | [INFO] [stdout] 223 | pub(crate) struct SpotTransferDelta { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MiscEventType` is never used [INFO] [stdout] --> server/src/liquidation/types.rs:237:17 [INFO] [stdout] | [INFO] [stdout] 237 | pub(crate) enum MiscEventType { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MiscEvent` is never constructed [INFO] [stdout] --> server/src/liquidation/types.rs:257:19 [INFO] [stdout] | [INFO] [stdout] 257 | pub(crate) struct MiscEvent { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MiscEventBatch` is never constructed [INFO] [stdout] --> server/src/liquidation/types.rs:267:19 [INFO] [stdout] | [INFO] [stdout] 267 | pub(crate) struct MiscEventBatch { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `empty` is never used [INFO] [stdout] --> server/src/liquidation/types.rs:318:19 [INFO] [stdout] | [INFO] [stdout] 316 | impl LiquidationLevels { [INFO] [stdout] | ---------------------- associated function in this implementation [INFO] [stdout] 317 | /// Create empty liquidation levels for a coin. [INFO] [stdout] 318 | pub(crate) fn empty(coin: String, time: u64) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `state` and `is_ready` are never used [INFO] [stdout] --> server/src/liquidation/service.rs:113:25 [INFO] [stdout] | [INFO] [stdout] 88 | / impl LiquidationService [INFO] [stdout] 89 | | where [INFO] [stdout] 90 | | I: InfoClient, [INFO] [stdout] 91 | | L: LevelComputer, [INFO] [stdout] 92 | | R: RefreshStrategy, [INFO] [stdout] | |_______________________- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 113 | pub(crate) async fn state(&self) -> ServiceState { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub(crate) async fn is_ready(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `handle_immediate_snapshot_with_liquidation` is never used [INFO] [stdout] --> server/src/servers/websocket_server.rs:617:14 [INFO] [stdout] | [INFO] [stdout] 588 | impl Subscription { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 617 | async fn handle_immediate_snapshot_with_liquidation( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `px` is never used [INFO] [stdout] --> server/src/types/mod.rs:42:19 [INFO] [stdout] | [INFO] [stdout] 36 | impl Level { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 42 | pub(crate) fn px(&self) -> &str { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> server/src/types/node_data.rs:170:11 [INFO] [stdout] | [INFO] [stdout] 170 | Other(serde_json::Value), [INFO] [stdout] | ----- ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `MiscEventInner` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 170 - Other(serde_json::Value), [INFO] [stdout] 170 + Other(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAULT_LIQUIDATION_SIG_FIGS` is never used [INFO] [stdout] --> server/src/types/subscription.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const DEFAULT_LIQUIDATION_SIG_FIGS: u32 = 3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `liquidation_sig_figs` and `liquidation_n_levels` are never used [INFO] [stdout] --> server/src/types/subscription.rs:116:19 [INFO] [stdout] | [INFO] [stdout] 36 | impl Subscription { [INFO] [stdout] | ----------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 116 | pub(crate) fn liquidation_sig_figs(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 126 | pub(crate) fn liquidation_n_levels(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> server/src/liquidation/infrastructure/event_watcher.rs:474:18 [INFO] [stdout] | [INFO] [stdout] 474 | let (tx, mut rx) = mpsc::channel(100); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rx` [INFO] [stdout] --> server/src/liquidation/infrastructure/event_watcher.rs:474:18 [INFO] [stdout] | [INFO] [stdout] 474 | let (tx, mut rx) = mpsc::channel(100); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_rx` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `positions` [INFO] [stdout] --> server/src/liquidation/service.rs:146:17 [INFO] [stdout] | [INFO] [stdout] 146 | let positions = self.positions.read().await; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_positions` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `liquidation_service` [INFO] [stdout] --> server/src/servers/websocket_server.rs:355:5 [INFO] [stdout] | [INFO] [stdout] 355 | liquidation_service: Arc, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_liquidation_service` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `with_calculator` is never used [INFO] [stdout] --> server/src/liquidation/application/computer.rs:43:19 [INFO] [stdout] | [INFO] [stdout] 41 | impl LiquidationComputer { [INFO] [stdout] | ---------------------------------------------------------- associated function in this implementation [INFO] [stdout] 42 | /// Create a new computer with a custom calculator. [INFO] [stdout] 43 | pub(crate) fn with_calculator(calculator: C) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `computer` is never read [INFO] [stdout] --> server/src/liquidation/application/service.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 49 | pub(crate) struct RealtimeLiquidationService { [INFO] [stdout] | -------------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 55 | computer: LiquidationComputer, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `compute_all_levels` is never used [INFO] [stdout] --> server/src/liquidation/application/service.rs:296:25 [INFO] [stdout] | [INFO] [stdout] 66 | impl RealtimeLiquidationService { [INFO] [stdout] | ------------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 296 | pub(crate) async fn compute_all_levels(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `SharedService` is never used [INFO] [stdout] --> server/src/liquidation/application/service.rs:329:17 [INFO] [stdout] | [INFO] [stdout] 329 | pub(crate) type SharedService = Arc; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `CrossToIsolated`, `IsolatedToCross`, `ClosedPnl`, and `Fee` are never constructed [INFO] [stdout] --> server/src/liquidation/domain/events.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 43 | pub(crate) enum BalanceChangeReason { [INFO] [stdout] | ------------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 47 | CrossToIsolated { coin: Coin }, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 48 | IsolatedToCross { coin: Coin }, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 49 | FundingPayment, [INFO] [stdout] 50 | ClosedPnl { coin: Coin }, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 51 | Fee { coin: Coin }, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BalanceChangeReason` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `time` is never read [INFO] [stdout] --> server/src/liquidation/domain/events.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 66 | pub(crate) struct IsolatedMarginChanged { [INFO] [stdout] | --------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 70 | pub time: u64, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IsolatedMarginChanged` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `IsolatedMarginChanged` is never constructed [INFO] [stdout] --> server/src/liquidation/domain/events.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 75 | pub(crate) enum DomainEvent { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 80 | IsolatedMarginChanged(IsolatedMarginChanged), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DomainEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `populate_from_snapshots` and `len` are never used [INFO] [stdout] --> server/src/liquidation/infrastructure/asset_mapper.rs:44:19 [INFO] [stdout] | [INFO] [stdout] 32 | impl AssetIndexMapper { [INFO] [stdout] | --------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 44 | pub(crate) fn populate_from_snapshots(&self, snapshots: &L2Snapshots) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub(crate) fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple fields are never read [INFO] [stdout] --> server/src/liquidation/infrastructure/fill_adapter.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 87 | pub(crate) struct RawFill { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 99 | pub hash: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 100 | #[serde(default)] [INFO] [stdout] 101 | pub oid: u64, [INFO] [stdout] | ^^^ [INFO] [stdout] 102 | #[serde(default)] [INFO] [stdout] 103 | pub crossed: bool, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 104 | #[serde(rename = "feeToken", default)] [INFO] [stdout] 105 | pub fee_token: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 106 | #[serde(rename = "twapId", default)] [INFO] [stdout] 107 | pub twap_id: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 108 | #[serde(default)] [INFO] [stdout] 109 | pub cloid: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 110 | #[serde(default)] [INFO] [stdout] 111 | pub tid: u64, [INFO] [stdout] | ^^^ [INFO] [stdout] 112 | #[serde(default)] [INFO] [stdout] 113 | pub builder: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 114 | #[serde(rename = "builderFee", default)] [INFO] [stdout] 115 | pub builder_fee: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RawFill` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `local_time` is never read [INFO] [stdout] --> server/src/liquidation/infrastructure/fill_adapter.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 120 | pub(crate) struct RawFillBatch { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 121 | pub local_time: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RawFillBatch` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `extract_mark_prices` is never used [INFO] [stdout] --> server/src/liquidation/infrastructure/mark_price_adapter.rs:107:19 [INFO] [stdout] | [INFO] [stdout] 16 | impl MarkPriceAdapter { [INFO] [stdout] | --------------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 107 | pub(crate) fn extract_mark_prices(snapshots: &L2Snapshots) -> HashMap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `nonce` is never read [INFO] [stdout] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 101 | pub(crate) struct WithdrawDelta { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 105 | pub nonce: u64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WithdrawDelta` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `token`, `amount`, `native_token_fee`, `nonce`, and `fee_token` are never read [INFO] [stdout] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:111:9 [INFO] [stdout] | [INFO] [stdout] 110 | pub(crate) struct SpotTransferDelta { [INFO] [stdout] | ----------------- fields in this struct [INFO] [stdout] 111 | pub token: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 112 | pub amount: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub native_token_fee: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 120 | #[serde(default)] [INFO] [stdout] 121 | pub nonce: u64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 122 | #[serde(rename = "feeToken", default)] [INFO] [stdout] 123 | pub fee_token: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SpotTransferDelta` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `coin`, `szi`, and `funding_rate` are never read [INFO] [stdout] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 128 | pub(crate) struct FundingDelta { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 129 | pub user: String, [INFO] [stdout] 130 | pub coin: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 131 | pub funding_amount: String, [INFO] [stdout] 132 | pub szi: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 133 | pub funding_rate: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FundingDelta` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `time` and `hash` are never read [INFO] [stdout] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:176:9 [INFO] [stdout] | [INFO] [stdout] 175 | pub(crate) struct RawMiscEvent { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 176 | pub time: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 177 | #[serde(default)] [INFO] [stdout] 178 | pub hash: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RawMiscEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `local_time` is never read [INFO] [stdout] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:185:9 [INFO] [stdout] | [INFO] [stdout] 184 | pub(crate) struct RawMiscEventBatch { [INFO] [stdout] | ----------------- field in this struct [INFO] [stdout] 185 | pub local_time: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RawMiscEventBatch` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `nonce` is never read [INFO] [stdout] --> server/src/liquidation/infrastructure/replica_cmd_adapter.rs:107:9 [INFO] [stdout] | [INFO] [stdout] 104 | pub(crate) struct SignedAction { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 107 | pub nonce: u64, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SignedAction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `data_dir` is never read [INFO] [stdout] --> server/src/liquidation/orchestrator.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 17 | pub(crate) struct RealtimeLiquidationConfig { [INFO] [stdout] | ------------------------- field in this struct [INFO] [stdout] 18 | /// Base path for node data directories. [INFO] [stdout] 19 | pub data_dir: PathBuf, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RealtimeLiquidationConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `service` is never used [INFO] [stdout] --> server/src/liquidation/orchestrator.rs:83:19 [INFO] [stdout] | [INFO] [stdout] 42 | impl RealtimeOrchestrator { [INFO] [stdout] | ------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 83 | pub(crate) fn service(&self) -> &Arc { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `MarkPriceSource` is never used [INFO] [stdout] --> server/src/liquidation/ports/traits.rs:22:18 [INFO] [stdout] | [INFO] [stdout] 22 | pub(crate) trait MarkPriceSource: Send + Sync { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `lower_bound` and `max_leverage` are never read [INFO] [stdout] --> server/src/liquidation/ports/traits.rs:58:9 [INFO] [stdout] | [INFO] [stdout] 56 | pub(crate) struct MarginTier { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 57 | /// Notional position lower bound for this tier. [INFO] [stdout] 58 | pub lower_bound: Px, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 59 | /// Maximum leverage for this tier. [INFO] [stdout] 60 | pub max_leverage: u32, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MarginTier` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `AssetInfoSource` is never used [INFO] [stdout] --> server/src/liquidation/ports/traits.rs:86:18 [INFO] [stdout] | [INFO] [stdout] 86 | pub(crate) trait AssetInfoSource: Send + Sync { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `RefreshUser` and `RefreshUsers` are never constructed [INFO] [stdout] --> server/src/liquidation/traits.rs:108:5 [INFO] [stdout] | [INFO] [stdout] 104 | pub(crate) enum RefreshDecision { [INFO] [stdout] | --------------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 108 | RefreshUser(Address), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 109 | /// Refresh prices for multiple users. [INFO] [stdout] 110 | RefreshUsers(Vec
), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RefreshDecision` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MockPositionStore` is never constructed [INFO] [stdout] --> server/src/liquidation/traits.rs:122:23 [INFO] [stdout] | [INFO] [stdout] 122 | pub(crate) struct MockPositionStore { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> server/src/liquidation/traits.rs:127:23 [INFO] [stdout] | [INFO] [stdout] 126 | impl MockPositionStore { [INFO] [stdout] | ---------------------- associated function in this implementation [INFO] [stdout] 127 | pub(crate) fn new(positions: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MockInfoClient` is never constructed [INFO] [stdout] --> server/src/liquidation/traits.rs:161:23 [INFO] [stdout] | [INFO] [stdout] 161 | pub(crate) struct MockInfoClient { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `with_response` are never used [INFO] [stdout] --> server/src/liquidation/traits.rs:166:23 [INFO] [stdout] | [INFO] [stdout] 165 | impl MockInfoClient { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 166 | pub(crate) fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | pub(crate) fn with_response(mut self, user: Address, coin: Coin, px: Px) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `funding_amount` is never read [INFO] [stdout] --> server/src/liquidation/types.rs:193:9 [INFO] [stdout] | [INFO] [stdout] 183 | pub(crate) struct FundingDelta { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 193 | pub funding_amount: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FundingDelta` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DepositDelta` is never constructed [INFO] [stdout] --> server/src/liquidation/types.rs:203:19 [INFO] [stdout] | [INFO] [stdout] 203 | pub(crate) struct DepositDelta { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WithdrawDelta` is never constructed [INFO] [stdout] --> server/src/liquidation/types.rs:211:19 [INFO] [stdout] | [INFO] [stdout] 211 | pub(crate) struct WithdrawDelta { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SpotTransferDelta` is never constructed [INFO] [stdout] --> server/src/liquidation/types.rs:223:19 [INFO] [stdout] | [INFO] [stdout] 223 | pub(crate) struct SpotTransferDelta { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MiscEventType` is never used [INFO] [stdout] --> server/src/liquidation/types.rs:237:17 [INFO] [stdout] | [INFO] [stdout] 237 | pub(crate) enum MiscEventType { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MiscEvent` is never constructed [INFO] [stdout] --> server/src/liquidation/types.rs:257:19 [INFO] [stdout] | [INFO] [stdout] 257 | pub(crate) struct MiscEvent { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MiscEventBatch` is never constructed [INFO] [stdout] --> server/src/liquidation/types.rs:267:19 [INFO] [stdout] | [INFO] [stdout] 267 | pub(crate) struct MiscEventBatch { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `empty` is never used [INFO] [stdout] --> server/src/liquidation/types.rs:318:19 [INFO] [stdout] | [INFO] [stdout] 316 | impl LiquidationLevels { [INFO] [stdout] | ---------------------- associated function in this implementation [INFO] [stdout] 317 | /// Create empty liquidation levels for a coin. [INFO] [stdout] 318 | pub(crate) fn empty(coin: String, time: u64) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> server/src/types/node_data.rs:170:11 [INFO] [stdout] | [INFO] [stdout] 170 | Other(serde_json::Value), [INFO] [stdout] | ----- ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `MiscEventInner` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 170 - Other(serde_json::Value), [INFO] [stdout] 170 + Other(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAULT_LIQUIDATION_SIG_FIGS` is never used [INFO] [stdout] --> server/src/types/subscription.rs:9:7 [INFO] [stdout] | [INFO] [stdout] 9 | const DEFAULT_LIQUIDATION_SIG_FIGS: u32 = 3; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `liquidation_sig_figs` is never used [INFO] [stdout] --> server/src/types/subscription.rs:116:19 [INFO] [stdout] | [INFO] [stdout] 36 | impl Subscription { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 116 | pub(crate) fn liquidation_sig_figs(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding let on a type that has a destructor [INFO] [stdout] --> server/src/liquidation/infrastructure/asset_mapper.rs:284:17 [INFO] [stdout] | [INFO] [stdout] 284 | let _ = mapper_clone.get(0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: requested on the command line with `-W let-underscore-drop` [INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value [INFO] [stdout] | [INFO] [stdout] 284 | let _unused = mapper_clone.get(0); [INFO] [stdout] | ++++++ [INFO] [stdout] help: consider immediately dropping the value [INFO] [stdout] | [INFO] [stdout] 284 - let _ = mapper_clone.get(0); [INFO] [stdout] 284 + drop(mapper_clone.get(0)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding let on a type that has a destructor [INFO] [stdout] --> server/src/liquidation/infrastructure/asset_mapper.rs:285:17 [INFO] [stdout] | [INFO] [stdout] 285 | let _ = mapper_clone.get(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value [INFO] [stdout] | [INFO] [stdout] 285 | let _unused = mapper_clone.get(1); [INFO] [stdout] | ++++++ [INFO] [stdout] help: consider immediately dropping the value [INFO] [stdout] | [INFO] [stdout] 285 - let _ = mapper_clone.get(1); [INFO] [stdout] 285 + drop(mapper_clone.get(1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding let on a type that has a destructor [INFO] [stdout] --> server/src/liquidation/infrastructure/asset_mapper.rs:290:13 [INFO] [stdout] | [INFO] [stdout] 290 | let _ = mapper.get(0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value [INFO] [stdout] | [INFO] [stdout] 290 | let _unused = mapper.get(0); [INFO] [stdout] | ++++++ [INFO] [stdout] help: consider immediately dropping the value [INFO] [stdout] | [INFO] [stdout] 290 - let _ = mapper.get(0); [INFO] [stdout] 290 + drop(mapper.get(0)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding let on a type that has a destructor [INFO] [stdout] --> server/src/liquidation/infrastructure/asset_mapper.rs:291:13 [INFO] [stdout] | [INFO] [stdout] 291 | let _ = mapper.get(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value [INFO] [stdout] | [INFO] [stdout] 291 | let _unused = mapper.get(1); [INFO] [stdout] | ++++++ [INFO] [stdout] help: consider immediately dropping the value [INFO] [stdout] | [INFO] [stdout] 291 - let _ = mapper.get(1); [INFO] [stdout] 291 + drop(mapper.get(1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-binding let on a type that has a destructor [INFO] [stdout] --> server/src/liquidation/orchestrator.rs:286:13 [INFO] [stdout] | [INFO] [stdout] 286 | / let _ = super::run_realtime_liquidation_service( [INFO] [stdout] 287 | | service_orchestrator, [INFO] [stdout] 288 | | event_rx, [INFO] [stdout] 289 | | internal_rx_for_service, [INFO] [stdout] 290 | | internal_tx, [INFO] [stdout] 291 | | ).await; [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] help: consider binding to an unused variable to avoid immediately dropping the value [INFO] [stdout] | [INFO] [stdout] 286 | let _unused = super::run_realtime_liquidation_service( [INFO] [stdout] | ++++++ [INFO] [stdout] help: consider immediately dropping the value [INFO] [stdout] | [INFO] [stdout] 286 ~ drop(super::run_realtime_liquidation_service( [INFO] [stdout] 287 | service_orchestrator, [INFO] [stdout] ... [INFO] [stdout] 290 | internal_tx, [INFO] [stdout] 291 ~ ).await); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling binaries v0.1.0 (/opt/rustwide/workdir/binaries) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 44.71s [INFO] running `Command { std: "docker" "inspect" "82f1c1c527f87a8a0267aa916e6975c43c6fd12887f991c46a746d8d9c6f35b8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "82f1c1c527f87a8a0267aa916e6975c43c6fd12887f991c46a746d8d9c6f35b8", kill_on_drop: false }` [INFO] [stdout] 82f1c1c527f87a8a0267aa916e6975c43c6fd12887f991c46a746d8d9c6f35b8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 2e586af2ce3a2d78ea3aa6cacef4bb4ea2a33438f27b3a5b0073154367e9ec24 [INFO] running `Command { std: "docker" "start" "-a" "2e586af2ce3a2d78ea3aa6cacef4bb4ea2a33438f27b3a5b0073154367e9ec24", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `computer::LiquidationComputer` [INFO] [stderr] --> server/src/liquidation/application/mod.rs:11:16 [INFO] [stderr] | [INFO] [stderr] 11 | pub(crate) use computer::LiquidationComputer; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str::FromStr` [INFO] [stderr] --> server/src/liquidation/infrastructure/event_watcher.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | use std::str::FromStr; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str::FromStr` [INFO] [stderr] --> server/src/liquidation/infrastructure/event_watcher.rs:97:13 [INFO] [stderr] | [INFO] [stderr] 97 | use std::str::FromStr; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str::FromStr` [INFO] [stderr] --> server/src/liquidation/infrastructure/event_watcher.rs:168:13 [INFO] [stderr] | [INFO] [stderr] 168 | use std::str::FromStr; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary qualification [INFO] [stderr] --> server/src/liquidation/infrastructure/event_watcher.rs:374:15 [INFO] [stderr] | [INFO] [stderr] 374 | listener: std::sync::Arc>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: requested on the command line with `-W unused-qualifications` [INFO] [stderr] help: remove the unnecessary path segments [INFO] [stderr] | [INFO] [stderr] 374 - listener: std::sync::Arc>, [INFO] [stderr] 374 + listener: Arc>, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary qualification [INFO] [stderr] --> server/src/liquidation/infrastructure/event_watcher.rs:375:10 [INFO] [stderr] | [INFO] [stderr] 375 | dir: std::path::PathBuf, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: remove the unnecessary path segments [INFO] [stderr] | [INFO] [stderr] 375 - dir: std::path::PathBuf, [INFO] [stderr] 375 + dir: PathBuf, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `fill_adapter::FillAdapter` [INFO] [stderr] --> server/src/liquidation/infrastructure/mod.rs:19:16 [INFO] [stderr] | [INFO] [stderr] 19 | pub(crate) use fill_adapter::FillAdapter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `misc_event_adapter::MiscEventAdapter` [INFO] [stderr] --> server/src/liquidation/infrastructure/mod.rs:21:16 [INFO] [stderr] | [INFO] [stderr] 21 | pub(crate) use misc_event_adapter::MiscEventAdapter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `replica_cmd_adapter::ReplicaCmdAdapter` [INFO] [stderr] --> server/src/liquidation/infrastructure/mod.rs:22:16 [INFO] [stderr] | [INFO] [stderr] 22 | pub(crate) use replica_cmd_adapter::ReplicaCmdAdapter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `MarkPriceUpdated` [INFO] [stderr] --> server/src/liquidation/orchestrator.rs:11:55 [INFO] [stderr] | [INFO] [stderr] 11 | use crate::liquidation::domain::events::{DomainEvent, MarkPriceUpdated}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary qualification [INFO] [stderr] --> server/src/liquidation/orchestrator.rs:99:75 [INFO] [stderr] | [INFO] [stderr] 99 | pub(crate) async fn tracked_coins(&self) -> std::collections::HashSet { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: remove the unnecessary path segments [INFO] [stderr] | [INFO] [stderr] 99 - pub(crate) async fn tracked_coins(&self) -> std::collections::HashSet { [INFO] [stderr] 99 + pub(crate) async fn tracked_coins(&self) -> std::collections::HashSet { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused imports: `AssetInfoSource` and `MarkPriceSource` [INFO] [stderr] --> server/src/liquidation/ports/mod.rs:10:25 [INFO] [stderr] | [INFO] [stderr] 10 | pub(crate) use traits::{AssetInfoSource, MarkPriceSource, UserStateSource}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ServiceState` [INFO] [stderr] --> server/src/liquidation/mod.rs:35:51 [INFO] [stderr] | [INFO] [stderr] 35 | LiquidationService, LiquidationServiceConfig, ServiceState, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary qualification [INFO] [stderr] --> server/src/listeners/funding.rs:137:22 [INFO] [stderr] | [INFO] [stderr] 137 | let reader = std::io::BufReader::new(file); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: remove the unnecessary path segments [INFO] [stderr] | [INFO] [stderr] 137 - let reader = std::io::BufReader::new(file); [INFO] [stderr] 137 + let reader = io::BufReader::new(file); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary qualification [INFO] [stderr] --> server/src/servers/websocket_server.rs:619:41 [INFO] [stderr] | [INFO] [stderr] 619 | liquidation_service: Option>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: remove the unnecessary path segments [INFO] [stderr] | [INFO] [stderr] 619 - liquidation_service: Option>>, [INFO] [stderr] 619 + liquidation_service: Option>>, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused variable: `positions` [INFO] [stderr] --> server/src/liquidation/service.rs:146:17 [INFO] [stderr] | [INFO] [stderr] 146 | let positions = self.positions.read().await; [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_positions` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `liquidation_service` [INFO] [stderr] --> server/src/servers/websocket_server.rs:355:5 [INFO] [stderr] | [INFO] [stderr] 355 | liquidation_service: Arc, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_liquidation_service` [INFO] [stderr] [INFO] [stderr] warning: fields `calculator` and `level_computer` are never read [INFO] [stderr] --> server/src/liquidation/application/computer.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 20 | pub(crate) struct LiquidationComputer { [INFO] [stderr] | ------------------- fields in this struct [INFO] [stderr] 21 | calculator: C, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 22 | level_computer: LevelComputerImpl, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: associated items `with_calculator`, `compute_price`, and `compute_levels` are never used [INFO] [stderr] --> server/src/liquidation/application/computer.rs:43:19 [INFO] [stderr] | [INFO] [stderr] 41 | impl LiquidationComputer { [INFO] [stderr] | ---------------------------------------------------------- associated items in this implementation [INFO] [stderr] 42 | /// Create a new computer with a custom calculator. [INFO] [stderr] 43 | pub(crate) fn with_calculator(calculator: C) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 54 | pub(crate) fn compute_price( [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 99 | pub(crate) fn compute_levels( [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `computer` is never read [INFO] [stderr] --> server/src/liquidation/application/service.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 49 | pub(crate) struct RealtimeLiquidationService { [INFO] [stderr] | -------------------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 55 | computer: LiquidationComputer, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `start_bootstrap`, `cache_size`, `import_user_state`, `update_mark_price`, `compute_all_levels`, and `coins` are never used [INFO] [stderr] --> server/src/liquidation/application/service.rs:81:19 [INFO] [stderr] | [INFO] [stderr] 66 | impl RealtimeLiquidationService { [INFO] [stderr] | ------------------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 81 | pub(crate) fn start_bootstrap(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 189 | pub(crate) async fn cache_size(&self) -> usize { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 235 | pub(crate) async fn import_user_state(&self, user_state: UserState) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 281 | pub(crate) async fn update_mark_price(&self, coin: Coin, price: Px) -> Vec
{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 296 | pub(crate) async fn compute_all_levels(&self) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 311 | pub(crate) async fn coins(&self) -> Vec { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias `SharedService` is never used [INFO] [stderr] --> server/src/liquidation/application/service.rs:329:17 [INFO] [stderr] | [INFO] [stderr] 329 | pub(crate) type SharedService = Arc; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `time` is never read [INFO] [stderr] --> server/src/liquidation/domain/events.rs:16:9 [INFO] [stderr] | [INFO] [stderr] 13 | pub(crate) struct MarkPriceUpdated { [INFO] [stderr] | ---------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 16 | pub time: u64, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `MarkPriceUpdated` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `time` is never read [INFO] [stderr] --> server/src/liquidation/domain/events.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 21 | pub(crate) struct PositionChanged { [INFO] [stderr] | --------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 29 | pub time: u64, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `PositionChanged` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `time` is never read [INFO] [stderr] --> server/src/liquidation/domain/events.rs:38:9 [INFO] [stderr] | [INFO] [stderr] 34 | pub(crate) struct BalanceChanged { [INFO] [stderr] | -------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 38 | pub time: u64, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `BalanceChanged` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variants `CrossToIsolated`, `IsolatedToCross`, `ClosedPnl`, and `Fee` are never constructed [INFO] [stderr] --> server/src/liquidation/domain/events.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 43 | pub(crate) enum BalanceChangeReason { [INFO] [stderr] | ------------------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 47 | CrossToIsolated { coin: Coin }, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] 48 | IsolatedToCross { coin: Coin }, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] 49 | FundingPayment, [INFO] [stderr] 50 | ClosedPnl { coin: Coin }, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 51 | Fee { coin: Coin }, [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `BalanceChangeReason` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `time` is never read [INFO] [stderr] --> server/src/liquidation/domain/events.rs:61:9 [INFO] [stderr] | [INFO] [stderr] 56 | pub(crate) struct LeverageChanged { [INFO] [stderr] | --------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 61 | pub time: u64, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `LeverageChanged` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `time` is never read [INFO] [stderr] --> server/src/liquidation/domain/events.rs:70:9 [INFO] [stderr] | [INFO] [stderr] 66 | pub(crate) struct IsolatedMarginChanged { [INFO] [stderr] | --------------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 70 | pub time: u64, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `IsolatedMarginChanged` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variant `IsolatedMarginChanged` is never constructed [INFO] [stderr] --> server/src/liquidation/domain/events.rs:80:5 [INFO] [stderr] | [INFO] [stderr] 75 | pub(crate) enum DomainEvent { [INFO] [stderr] | ----------- variant in this enum [INFO] [stderr] ... [INFO] [stderr] 80 | IsolatedMarginChanged(IsolatedMarginChanged), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `DomainEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `user` is never read [INFO] [stderr] --> server/src/liquidation/domain/state.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 19 | pub(crate) struct UserState { [INFO] [stderr] | --------- field in this struct [INFO] [stderr] 20 | /// User address. [INFO] [stderr] 21 | pub user: Address, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `UserState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: function `calculate_liquidation_price` is never used [INFO] [stderr] --> server/src/liquidation/domain/types.rs:30:15 [INFO] [stderr] | [INFO] [stderr] 30 | pub(crate) fn calculate_liquidation_price( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `is_positive`, `is_negative`, `is_zero`, `to_px`, and `to_str` are never used [INFO] [stderr] --> server/src/liquidation/domain/types.rs:136:25 [INFO] [stderr] | [INFO] [stderr] 124 | impl SignedPx { [INFO] [stderr] | ------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 136 | pub(crate) const fn is_positive(self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 141 | pub(crate) const fn is_negative(self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 146 | pub(crate) const fn is_zero(self) -> bool { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 158 | pub(crate) fn to_px(self) -> Option { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 176 | pub(crate) fn to_str(self) -> String { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `populate_from_snapshots`, `populate_hardcoded`, `len`, and `is_empty` are never used [INFO] [stderr] --> server/src/liquidation/infrastructure/asset_mapper.rs:44:19 [INFO] [stderr] | [INFO] [stderr] 32 | impl AssetIndexMapper { [INFO] [stderr] | --------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 44 | pub(crate) fn populate_from_snapshots(&self, snapshots: &L2Snapshots) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 70 | fn populate_hardcoded(&self, map: &mut HashMap) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 176 | pub(crate) fn len(&self) -> usize { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 181 | pub(crate) fn is_empty(&self) -> bool { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple fields are never read [INFO] [stderr] --> server/src/liquidation/infrastructure/fill_adapter.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 87 | pub(crate) struct RawFill { [INFO] [stderr] | ------- fields in this struct [INFO] [stderr] ... [INFO] [stderr] 99 | pub hash: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] 100 | #[serde(default)] [INFO] [stderr] 101 | pub oid: u64, [INFO] [stderr] | ^^^ [INFO] [stderr] 102 | #[serde(default)] [INFO] [stderr] 103 | pub crossed: bool, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 104 | #[serde(rename = "feeToken", default)] [INFO] [stderr] 105 | pub fee_token: String, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 106 | #[serde(rename = "twapId", default)] [INFO] [stderr] 107 | pub twap_id: Option, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 108 | #[serde(default)] [INFO] [stderr] 109 | pub cloid: Option, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 110 | #[serde(default)] [INFO] [stderr] 111 | pub tid: u64, [INFO] [stderr] | ^^^ [INFO] [stderr] 112 | #[serde(default)] [INFO] [stderr] 113 | pub builder: Option, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 114 | #[serde(rename = "builderFee", default)] [INFO] [stderr] 115 | pub builder_fee: Option, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `RawFill` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `local_time` and `block_number` are never read [INFO] [stderr] --> server/src/liquidation/infrastructure/fill_adapter.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 120 | pub(crate) struct RawFillBatch { [INFO] [stderr] | ------------ fields in this struct [INFO] [stderr] 121 | pub local_time: String, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 122 | pub block_time: String, [INFO] [stderr] 123 | pub block_number: u64, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `RawFillBatch` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated functions `compute_mid_price`, `to_event`, and `extract_mark_prices` are never used [INFO] [stderr] --> server/src/liquidation/infrastructure/mark_price_adapter.rs:26:19 [INFO] [stderr] | [INFO] [stderr] 16 | impl MarkPriceAdapter { [INFO] [stderr] | --------------------- associated functions in this implementation [INFO] [stderr] ... [INFO] [stderr] 26 | pub(crate) fn compute_mid_price(bids: &[Level], asks: &[Level]) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 85 | pub(crate) fn to_event( [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 107 | pub(crate) fn extract_mark_prices(snapshots: &L2Snapshots) -> HashMap { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `nonce` is never read [INFO] [stderr] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:105:9 [INFO] [stderr] | [INFO] [stderr] 101 | pub(crate) struct WithdrawDelta { [INFO] [stderr] | ------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 105 | pub nonce: u64, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `WithdrawDelta` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `token`, `amount`, `native_token_fee`, `nonce`, and `fee_token` are never read [INFO] [stderr] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:111:9 [INFO] [stderr] | [INFO] [stderr] 110 | pub(crate) struct SpotTransferDelta { [INFO] [stderr] | ----------------- fields in this struct [INFO] [stderr] 111 | pub token: String, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 112 | pub amount: String, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 119 | pub native_token_fee: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] 120 | #[serde(default)] [INFO] [stderr] 121 | pub nonce: u64, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 122 | #[serde(rename = "feeToken", default)] [INFO] [stderr] 123 | pub fee_token: String, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `SpotTransferDelta` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `coin`, `szi`, and `funding_rate` are never read [INFO] [stderr] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 128 | pub(crate) struct FundingDelta { [INFO] [stderr] | ------------ fields in this struct [INFO] [stderr] 129 | pub user: String, [INFO] [stderr] 130 | pub coin: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] 131 | pub funding_amount: String, [INFO] [stderr] 132 | pub szi: String, [INFO] [stderr] | ^^^ [INFO] [stderr] 133 | pub funding_rate: String, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `FundingDelta` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `time` and `hash` are never read [INFO] [stderr] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:176:9 [INFO] [stderr] | [INFO] [stderr] 175 | pub(crate) struct RawMiscEvent { [INFO] [stderr] | ------------ fields in this struct [INFO] [stderr] 176 | pub time: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] 177 | #[serde(default)] [INFO] [stderr] 178 | pub hash: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `RawMiscEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `local_time` and `block_number` are never read [INFO] [stderr] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:185:9 [INFO] [stderr] | [INFO] [stderr] 184 | pub(crate) struct RawMiscEventBatch { [INFO] [stderr] | ----------------- fields in this struct [INFO] [stderr] 185 | pub local_time: String, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 186 | pub block_time: String, [INFO] [stderr] 187 | pub block_number: u64, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `RawMiscEventBatch` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: function `parse_block_time` is never used [INFO] [stderr] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:192:15 [INFO] [stderr] | [INFO] [stderr] 192 | pub(crate) fn parse_block_time(block_time: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `ReplicaCmd` is never constructed [INFO] [stderr] --> server/src/liquidation/infrastructure/replica_cmd_adapter.rs:47:19 [INFO] [stderr] | [INFO] [stderr] 47 | pub(crate) struct ReplicaCmd { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `nonce` is never read [INFO] [stderr] --> server/src/liquidation/infrastructure/replica_cmd_adapter.rs:107:9 [INFO] [stderr] | [INFO] [stderr] 104 | pub(crate) struct SignedAction { [INFO] [stderr] | ------------ field in this struct [INFO] [stderr] ... [INFO] [stderr] 107 | pub nonce: u64, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `SignedAction` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `data_dir` is never read [INFO] [stderr] --> server/src/liquidation/orchestrator.rs:19:9 [INFO] [stderr] | [INFO] [stderr] 17 | pub(crate) struct RealtimeLiquidationConfig { [INFO] [stderr] | ------------------------- field in this struct [INFO] [stderr] 18 | /// Base path for node data directories. [INFO] [stderr] 19 | pub data_dir: PathBuf, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `RealtimeLiquidationConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `service` is never used [INFO] [stderr] --> server/src/liquidation/orchestrator.rs:83:19 [INFO] [stderr] | [INFO] [stderr] 42 | impl RealtimeOrchestrator { [INFO] [stderr] | ------------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 83 | pub(crate) fn service(&self) -> &Arc { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait `MarkPriceSource` is never used [INFO] [stderr] --> server/src/liquidation/ports/traits.rs:22:18 [INFO] [stderr] | [INFO] [stderr] 22 | pub(crate) trait MarkPriceSource: Send + Sync { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `AssetInfo` is never constructed [INFO] [stderr] --> server/src/liquidation/ports/traits.rs:45:19 [INFO] [stderr] | [INFO] [stderr] 45 | pub(crate) struct AssetInfo { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `MarginTier` is never constructed [INFO] [stderr] --> server/src/liquidation/ports/traits.rs:56:19 [INFO] [stderr] | [INFO] [stderr] 56 | pub(crate) struct MarginTier { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated functions `new` and `with_tiers` are never used [INFO] [stderr] --> server/src/liquidation/ports/traits.rs:65:19 [INFO] [stderr] | [INFO] [stderr] 63 | impl AssetInfo { [INFO] [stderr] | -------------- associated functions in this implementation [INFO] [stderr] 64 | /// Create a new asset info with single-tier leverage. [INFO] [stderr] 65 | pub(crate) fn new(coin: Coin, max_leverage: u32) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 74 | pub(crate) fn with_tiers(coin: Coin, max_leverage: u32, tiers: Vec) -> Self { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait `AssetInfoSource` is never used [INFO] [stderr] --> server/src/liquidation/ports/traits.rs:86:18 [INFO] [stderr] | [INFO] [stderr] 86 | pub(crate) trait AssetInfoSource: Send + Sync { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `get`, `users_for_coin`, and `is_empty` are never used [INFO] [stderr] --> server/src/liquidation/traits.rs:21:8 [INFO] [stderr] | [INFO] [stderr] 19 | pub(crate) trait PositionStore: Send + Sync { [INFO] [stderr] | ------------- methods in this trait [INFO] [stderr] 20 | /// Get a position by user and coin. [INFO] [stderr] 21 | fn get(&self, user: &Address, coin: &Coin) -> Option<&Position>; [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 24 | fn users_for_coin(&self, coin: &Coin) -> Vec<&Address>; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 36 | fn is_empty(&self) -> bool { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `on_fill` and `on_funding` are never used [INFO] [stderr] --> server/src/liquidation/traits.rs:96:8 [INFO] [stderr] | [INFO] [stderr] 94 | pub(crate) trait RefreshStrategy: Send + Sync { [INFO] [stderr] | --------------- methods in this trait [INFO] [stderr] 95 | /// Called when a fill is received. Returns users to refresh (if any). [INFO] [stderr] 96 | fn on_fill(&self, user: &Address, coin: &Coin) -> RefreshDecision; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 99 | fn on_funding(&self) -> RefreshDecision; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `RefreshDecision` is never used [INFO] [stderr] --> server/src/liquidation/traits.rs:104:17 [INFO] [stderr] | [INFO] [stderr] 104 | pub(crate) enum RefreshDecision { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `to_str` is never used [INFO] [stderr] --> server/src/liquidation/types.rs:58:19 [INFO] [stderr] | [INFO] [stderr] 15 | impl SignedSz { [INFO] [stderr] | ------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 58 | pub(crate) fn to_str(self) -> String { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `funding_rate` and `funding_amount` are never read [INFO] [stderr] --> server/src/liquidation/types.rs:191:9 [INFO] [stderr] | [INFO] [stderr] 183 | pub(crate) struct FundingDelta { [INFO] [stderr] | ------------ fields in this struct [INFO] [stderr] ... [INFO] [stderr] 191 | pub funding_rate: String, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 192 | /// Funding amount paid/received. [INFO] [stderr] 193 | pub funding_amount: String, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `FundingDelta` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: struct `DepositDelta` is never constructed [INFO] [stderr] --> server/src/liquidation/types.rs:203:19 [INFO] [stderr] | [INFO] [stderr] 203 | pub(crate) struct DepositDelta { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `WithdrawDelta` is never constructed [INFO] [stderr] --> server/src/liquidation/types.rs:211:19 [INFO] [stderr] | [INFO] [stderr] 211 | pub(crate) struct WithdrawDelta { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `SpotTransferDelta` is never constructed [INFO] [stderr] --> server/src/liquidation/types.rs:223:19 [INFO] [stderr] | [INFO] [stderr] 223 | pub(crate) struct SpotTransferDelta { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum `MiscEventType` is never used [INFO] [stderr] --> server/src/liquidation/types.rs:237:17 [INFO] [stderr] | [INFO] [stderr] 237 | pub(crate) enum MiscEventType { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `MiscEvent` is never constructed [INFO] [stderr] --> server/src/liquidation/types.rs:257:19 [INFO] [stderr] | [INFO] [stderr] 257 | pub(crate) struct MiscEvent { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `MiscEventBatch` is never constructed [INFO] [stderr] --> server/src/liquidation/types.rs:267:19 [INFO] [stderr] | [INFO] [stderr] 267 | pub(crate) struct MiscEventBatch { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `empty` is never used [INFO] [stderr] --> server/src/liquidation/types.rs:318:19 [INFO] [stderr] | [INFO] [stderr] 316 | impl LiquidationLevels { [INFO] [stderr] | ---------------------- associated function in this implementation [INFO] [stderr] 317 | /// Create empty liquidation levels for a coin. [INFO] [stderr] 318 | pub(crate) fn empty(coin: String, time: u64) -> Self { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `state` and `is_ready` are never used [INFO] [stderr] --> server/src/liquidation/service.rs:113:25 [INFO] [stderr] | [INFO] [stderr] 88 | / impl LiquidationService [INFO] [stderr] 89 | | where [INFO] [stderr] 90 | | I: InfoClient, [INFO] [stderr] 91 | | L: LevelComputer, [INFO] [stderr] 92 | | R: RefreshStrategy, [INFO] [stderr] | |_______________________- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 113 | pub(crate) async fn state(&self) -> ServiceState { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 118 | pub(crate) async fn is_ready(&self) -> bool { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `handle_immediate_snapshot_with_liquidation` is never used [INFO] [stderr] --> server/src/servers/websocket_server.rs:617:14 [INFO] [stderr] | [INFO] [stderr] 588 | impl Subscription { [INFO] [stderr] | ----------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 617 | async fn handle_immediate_snapshot_with_liquidation( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `px` is never used [INFO] [stderr] --> server/src/types/mod.rs:42:19 [INFO] [stderr] | [INFO] [stderr] 36 | impl Level { [INFO] [stderr] | ---------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 42 | pub(crate) fn px(&self) -> &str { [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: field `0` is never read [INFO] [stderr] --> server/src/types/node_data.rs:170:11 [INFO] [stderr] | [INFO] [stderr] 170 | Other(serde_json::Value), [INFO] [stderr] | ----- ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | field in this variant [INFO] [stderr] | [INFO] [stderr] = note: `MiscEventInner` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stderr] | [INFO] [stderr] 170 - Other(serde_json::Value), [INFO] [stderr] 170 + Other(()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: constant `DEFAULT_LIQUIDATION_SIG_FIGS` is never used [INFO] [stderr] --> server/src/types/subscription.rs:9:7 [INFO] [stderr] | [INFO] [stderr] 9 | const DEFAULT_LIQUIDATION_SIG_FIGS: u32 = 3; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `liquidation_sig_figs` and `liquidation_n_levels` are never used [INFO] [stderr] --> server/src/types/subscription.rs:116:19 [INFO] [stderr] | [INFO] [stderr] 36 | impl Subscription { [INFO] [stderr] | ----------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 116 | pub(crate) fn liquidation_sig_figs(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 126 | pub(crate) fn liquidation_n_levels(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary qualification [INFO] [stderr] --> server/src/liquidation/infrastructure/replica_cmd_adapter.rs:266:24 [INFO] [stderr] | [INFO] [stderr] 266 | let data = std::fs::read_to_string(prod_path).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: remove the unnecessary path segments [INFO] [stderr] | [INFO] [stderr] 266 - let data = std::fs::read_to_string(prod_path).unwrap(); [INFO] [stderr] 266 + let data = fs::read_to_string(prod_path).unwrap(); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::liquidation::infrastructure::MarkPriceAdapter` [INFO] [stderr] --> server/src/liquidation/orchestrator.rs:481:13 [INFO] [stderr] | [INFO] [stderr] 481 | use crate::liquidation::infrastructure::MarkPriceAdapter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::liquidation::infrastructure::MarkPriceAdapter` [INFO] [stderr] --> server/src/liquidation/orchestrator.rs:498:13 [INFO] [stderr] | [INFO] [stderr] 498 | use crate::liquidation::infrastructure::MarkPriceAdapter; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `SignedSz` [INFO] [stderr] --> server/src/liquidation/service.rs:343:79 [INFO] [stderr] | [INFO] [stderr] 343 | use crate::liquidation::types::{FundingDelta, LiquidationLevel, Position, SignedSz}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary qualification [INFO] [stderr] --> server/src/listeners/funding.rs:367:28 [INFO] [stderr] | [INFO] [stderr] 367 | tokio::time::sleep(std::time::Duration::from_millis(50)).await; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: remove the unnecessary path segments [INFO] [stderr] | [INFO] [stderr] 367 - tokio::time::sleep(std::time::Duration::from_millis(50)).await; [INFO] [stderr] 367 + tokio::time::sleep(Duration::from_millis(50)).await; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary qualification [INFO] [stderr] --> server/src/listeners/funding.rs:393:28 [INFO] [stderr] | [INFO] [stderr] 393 | tokio::time::sleep(std::time::Duration::from_millis(50)).await; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: remove the unnecessary path segments [INFO] [stderr] | [INFO] [stderr] 393 - tokio::time::sleep(std::time::Duration::from_millis(50)).await; [INFO] [stderr] 393 + tokio::time::sleep(Duration::from_millis(50)).await; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary qualification [INFO] [stderr] --> server/src/listeners/funding.rs:447:28 [INFO] [stderr] | [INFO] [stderr] 447 | tokio::time::sleep(std::time::Duration::from_millis(50)).await; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: remove the unnecessary path segments [INFO] [stderr] | [INFO] [stderr] 447 - tokio::time::sleep(std::time::Duration::from_millis(50)).await; [INFO] [stderr] 447 + tokio::time::sleep(Duration::from_millis(50)).await; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary qualification [INFO] [stderr] --> server/src/servers/websocket_server.rs:835:32 [INFO] [stderr] | [INFO] [stderr] 835 | _positions: &[&crate::liquidation::types::Position], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: remove the unnecessary path segments [INFO] [stderr] | [INFO] [stderr] 835 - _positions: &[&crate::liquidation::types::Position], [INFO] [stderr] 835 + _positions: &[&Position], [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::types::subscription::DEFAULT_LEVELS` [INFO] [stderr] --> server/src/servers/websocket_server.rs:911:13 [INFO] [stderr] | [INFO] [stderr] 911 | use crate::types::subscription::DEFAULT_LEVELS; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary qualification [INFO] [stderr] --> server/src/servers/websocket_server.rs:919:23 [INFO] [stderr] | [INFO] [stderr] 919 | let deposit = crate::liquidation::DomainEvent::BalanceChanged(BalanceChanged { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: remove the unnecessary path segments [INFO] [stderr] | [INFO] [stderr] 919 - let deposit = crate::liquidation::DomainEvent::BalanceChanged(BalanceChanged { [INFO] [stderr] 919 + let deposit = DomainEvent::BalanceChanged(BalanceChanged { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary qualification [INFO] [stderr] --> server/src/servers/websocket_server.rs:927:24 [INFO] [stderr] | [INFO] [stderr] 927 | let position = crate::liquidation::DomainEvent::PositionChanged(PositionChanged { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: remove the unnecessary path segments [INFO] [stderr] | [INFO] [stderr] 927 - let position = crate::liquidation::DomainEvent::PositionChanged(PositionChanged { [INFO] [stderr] 927 + let position = DomainEvent::PositionChanged(PositionChanged { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unnecessary qualification [INFO] [stderr] --> server/src/servers/websocket_server.rs:940:26 [INFO] [stderr] | [INFO] [stderr] 940 | let mark_price = crate::liquidation::DomainEvent::MarkPriceUpdated(MarkPriceUpdated { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: remove the unnecessary path segments [INFO] [stderr] | [INFO] [stderr] 940 - let mark_price = crate::liquidation::DomainEvent::MarkPriceUpdated(MarkPriceUpdated { [INFO] [stderr] 940 + let mark_price = DomainEvent::MarkPriceUpdated(MarkPriceUpdated { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> server/src/liquidation/infrastructure/event_watcher.rs:474:18 [INFO] [stderr] | [INFO] [stderr] 474 | let (tx, mut rx) = mpsc::channel(100); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rx` [INFO] [stderr] --> server/src/liquidation/infrastructure/event_watcher.rs:474:18 [INFO] [stderr] | [INFO] [stderr] 474 | let (tx, mut rx) = mpsc::channel(100); [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_rx` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `positions` [INFO] [stderr] --> server/src/liquidation/service.rs:146:17 [INFO] [stderr] | [INFO] [stderr] 146 | let positions = self.positions.read().await; [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_positions` [INFO] [stderr] [INFO] [stderr] warning: associated function `with_calculator` is never used [INFO] [stderr] --> server/src/liquidation/application/computer.rs:43:19 [INFO] [stderr] | [INFO] [stderr] 41 | impl LiquidationComputer { [INFO] [stderr] | ---------------------------------------------------------- associated function in this implementation [INFO] [stderr] 42 | /// Create a new computer with a custom calculator. [INFO] [stderr] 43 | pub(crate) fn with_calculator(calculator: C) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: method `compute_all_levels` is never used [INFO] [stderr] --> server/src/liquidation/application/service.rs:296:25 [INFO] [stderr] | [INFO] [stderr] 66 | impl RealtimeLiquidationService { [INFO] [stderr] | ------------------------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 296 | pub(crate) async fn compute_all_levels(&self) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `populate_from_snapshots` and `len` are never used [INFO] [stderr] --> server/src/liquidation/infrastructure/asset_mapper.rs:44:19 [INFO] [stderr] | [INFO] [stderr] 32 | impl AssetIndexMapper { [INFO] [stderr] | --------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 44 | pub(crate) fn populate_from_snapshots(&self, snapshots: &L2Snapshots) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 176 | pub(crate) fn len(&self) -> usize { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: field `local_time` is never read [INFO] [stderr] --> server/src/liquidation/infrastructure/fill_adapter.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 120 | pub(crate) struct RawFillBatch { [INFO] [stderr] | ------------ field in this struct [INFO] [stderr] 121 | pub local_time: String, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `RawFillBatch` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: associated function `extract_mark_prices` is never used [INFO] [stderr] --> server/src/liquidation/infrastructure/mark_price_adapter.rs:107:19 [INFO] [stderr] | [INFO] [stderr] 16 | impl MarkPriceAdapter { [INFO] [stderr] | --------------------- associated function in this implementation [INFO] [stderr] ... [INFO] [stderr] 107 | pub(crate) fn extract_mark_prices(snapshots: &L2Snapshots) -> HashMap { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `local_time` is never read [INFO] [stderr] --> server/src/liquidation/infrastructure/misc_event_adapter.rs:185:9 [INFO] [stderr] | [INFO] [stderr] 184 | pub(crate) struct RawMiscEventBatch { [INFO] [stderr] | ----------------- field in this struct [INFO] [stderr] 185 | pub local_time: String, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `RawMiscEventBatch` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `lower_bound` and `max_leverage` are never read [INFO] [stderr] --> server/src/liquidation/ports/traits.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 56 | pub(crate) struct MarginTier { [INFO] [stderr] | ---------- fields in this struct [INFO] [stderr] 57 | /// Notional position lower bound for this tier. [INFO] [stderr] 58 | pub lower_bound: Px, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 59 | /// Maximum leverage for this tier. [INFO] [stderr] 60 | pub max_leverage: u32, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `MarginTier` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variants `RefreshUser` and `RefreshUsers` are never constructed [INFO] [stderr] --> server/src/liquidation/traits.rs:108:5 [INFO] [stderr] | [INFO] [stderr] 104 | pub(crate) enum RefreshDecision { [INFO] [stderr] | --------------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 108 | RefreshUser(Address), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 109 | /// Refresh prices for multiple users. [INFO] [stderr] 110 | RefreshUsers(Vec
), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `RefreshDecision` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: struct `MockPositionStore` is never constructed [INFO] [stderr] --> server/src/liquidation/traits.rs:122:23 [INFO] [stderr] | [INFO] [stderr] 122 | pub(crate) struct MockPositionStore { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> server/src/liquidation/traits.rs:127:23 [INFO] [stderr] | [INFO] [stderr] 126 | impl MockPositionStore { [INFO] [stderr] | ---------------------- associated function in this implementation [INFO] [stderr] 127 | pub(crate) fn new(positions: Vec) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `MockInfoClient` is never constructed [INFO] [stderr] --> server/src/liquidation/traits.rs:161:23 [INFO] [stderr] | [INFO] [stderr] 161 | pub(crate) struct MockInfoClient { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new` and `with_response` are never used [INFO] [stderr] --> server/src/liquidation/traits.rs:166:23 [INFO] [stderr] | [INFO] [stderr] 165 | impl MockInfoClient { [INFO] [stderr] | ------------------- associated items in this implementation [INFO] [stderr] 166 | pub(crate) fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 172 | pub(crate) fn with_response(mut self, user: Address, coin: Coin, px: Px) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `funding_amount` is never read [INFO] [stderr] --> server/src/liquidation/types.rs:193:9 [INFO] [stderr] | [INFO] [stderr] 183 | pub(crate) struct FundingDelta { [INFO] [stderr] | ------------ field in this struct [INFO] [stderr] ... [INFO] [stderr] 193 | pub funding_amount: String, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `FundingDelta` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `liquidation_sig_figs` is never used [INFO] [stderr] --> server/src/types/subscription.rs:116:19 [INFO] [stderr] | [INFO] [stderr] 36 | impl Subscription { [INFO] [stderr] | ----------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 116 | pub(crate) fn liquidation_sig_figs(&self) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: non-binding let on a type that has a destructor [INFO] [stderr] --> server/src/liquidation/infrastructure/asset_mapper.rs:284:17 [INFO] [stderr] | [INFO] [stderr] 284 | let _ = mapper_clone.get(0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: requested on the command line with `-W let-underscore-drop` [INFO] [stderr] help: consider binding to an unused variable to avoid immediately dropping the value [INFO] [stderr] | [INFO] [stderr] 284 | let _unused = mapper_clone.get(0); [INFO] [stderr] | ++++++ [INFO] [stderr] help: consider immediately dropping the value [INFO] [stderr] | [INFO] [stderr] 284 - let _ = mapper_clone.get(0); [INFO] [stderr] 284 + drop(mapper_clone.get(0)); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: non-binding let on a type that has a destructor [INFO] [stderr] --> server/src/liquidation/infrastructure/asset_mapper.rs:285:17 [INFO] [stderr] | [INFO] [stderr] 285 | let _ = mapper_clone.get(1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: consider binding to an unused variable to avoid immediately dropping the value [INFO] [stderr] | [INFO] [stderr] 285 | let _unused = mapper_clone.get(1); [INFO] [stderr] | ++++++ [INFO] [stderr] help: consider immediately dropping the value [INFO] [stderr] | [INFO] [stderr] 285 - let _ = mapper_clone.get(1); [INFO] [stderr] 285 + drop(mapper_clone.get(1)); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: non-binding let on a type that has a destructor [INFO] [stderr] --> server/src/liquidation/infrastructure/asset_mapper.rs:290:13 [INFO] [stderr] | [INFO] [stderr] 290 | let _ = mapper.get(0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: consider binding to an unused variable to avoid immediately dropping the value [INFO] [stderr] | [INFO] [stderr] 290 | let _unused = mapper.get(0); [INFO] [stderr] | ++++++ [INFO] [stderr] help: consider immediately dropping the value [INFO] [stderr] | [INFO] [stderr] 290 - let _ = mapper.get(0); [INFO] [stderr] 290 + drop(mapper.get(0)); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: non-binding let on a type that has a destructor [INFO] [stderr] --> server/src/liquidation/infrastructure/asset_mapper.rs:291:13 [INFO] [stderr] | [INFO] [stderr] 291 | let _ = mapper.get(1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: consider binding to an unused variable to avoid immediately dropping the value [INFO] [stderr] | [INFO] [stderr] 291 | let _unused = mapper.get(1); [INFO] [stderr] | ++++++ [INFO] [stderr] help: consider immediately dropping the value [INFO] [stderr] | [INFO] [stderr] 291 - let _ = mapper.get(1); [INFO] [stderr] 291 + drop(mapper.get(1)); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: non-binding let on a type that has a destructor [INFO] [stderr] --> server/src/liquidation/orchestrator.rs:286:13 [INFO] [stderr] | [INFO] [stderr] 286 | / let _ = super::run_realtime_liquidation_service( [INFO] [stderr] 287 | | service_orchestrator, [INFO] [stderr] 288 | | event_rx, [INFO] [stderr] 289 | | internal_rx_for_service, [INFO] [stderr] 290 | | internal_tx, [INFO] [stderr] 291 | | ).await; [INFO] [stderr] | |____________________^ [INFO] [stderr] | [INFO] [stderr] help: consider binding to an unused variable to avoid immediately dropping the value [INFO] [stderr] | [INFO] [stderr] 286 | let _unused = super::run_realtime_liquidation_service( [INFO] [stderr] | ++++++ [INFO] [stderr] help: consider immediately dropping the value [INFO] [stderr] | [INFO] [stderr] 286 ~ drop(super::run_realtime_liquidation_service( [INFO] [stderr] 287 | service_orchestrator, [INFO] [stderr] ... [INFO] [stderr] 290 | internal_tx, [INFO] [stderr] 291 ~ ).await); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `server` (lib) generated 69 warnings (run `cargo fix --lib -p server` to apply 17 suggestions) [INFO] [stderr] warning: `server` (lib test) generated 74 warnings (40 duplicates) (run `cargo fix --lib -p server --tests` to apply 20 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.67s [INFO] [stderr] Running unittests src/bin/example_client.rs (/opt/rustwide/target/debug/deps/example_client-9ffd23284ac29d68) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/bin/websocket_server.rs (/opt/rustwide/target/debug/deps/websocket_server-4d629feb9ab10e72) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/server-c9f03b491a182c2e) [INFO] [stdout] [INFO] [stdout] running 242 tests [INFO] [stdout] test liquidation::application::computer::tests::test_computer_compute_price_cross ... ok [INFO] [stdout] test liquidation::application::service::tests::test_bootstrap_filters_stale_events ... ok [INFO] [stdout] test liquidation::application::service::tests::test_bootstrap_mode_caches_events ... ok [INFO] [stdout] test liquidation::application::service::tests::test_bootstrap_applies_fetched_state ... ok [INFO] [stdout] test liquidation::application::service::tests::test_service_compute_levels ... ok [INFO] [stdout] test liquidation::application::service::tests::test_service_new ... ok [INFO] [stdout] test liquidation::application::service::tests::test_service_mark_price_updates ... ok [INFO] [stdout] test liquidation::application::service::tests::test_service_apply_position_event ... ok [INFO] [stdout] test liquidation::application::service::tests::test_stale_events_dropped_after_bootstrap ... ok [INFO] [stdout] test liquidation::application::service::tests::test_import_user_state ... ok [INFO] [stdout] test liquidation::application::service::tests::test_tracked_coins_empty_initially ... ok [INFO] [stdout] test liquidation::domain::calculator::tests::test_calculator_short_position ... ok [INFO] [stdout] test liquidation::domain::calculator::tests::test_calculator_zero_size ... ok [INFO] [stdout] test liquidation::domain::state::tests::test_apply_balance_changed_deposit ... ok [INFO] [stdout] test liquidation::domain::state::tests::test_apply_balance_changed_withdrawal ... ok [INFO] [stdout] test liquidation::domain::state::tests::test_apply_position_changed_close_position ... ok [INFO] [stdout] test liquidation::domain::state::tests::test_apply_position_changed_new_position ... ok [INFO] [stdout] test liquidation::domain::state::tests::test_positions_for_coin ... ok [INFO] [stdout] test liquidation::domain::state::tests::test_update_mark_price_affects_liquidation ... ok [INFO] [stdout] test liquidation::domain::state::tests::test_cross_margin_cascade ... ok [INFO] [stdout] test liquidation::domain::state::tests::test_user_state_with_balance ... ok [INFO] [stdout] test liquidation::domain::state::tests::test_user_state_cross_account_value_with_profit ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_entry_price_adding_to_long ... ok [INFO] [stdout] test liquidation::domain::state::tests::test_user_state_cross_account_value_with_loss ... ok [INFO] [stdout] test liquidation::domain::state::tests::test_clearinghouse_state_new ... ok [INFO] [stdout] test liquidation::domain::state::tests::test_user_state_cross_maintenance_margin ... ok [INFO] [stdout] test liquidation::application::service::tests::test_tracked_coins_populated_after_position ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_entry_price_flipping_long_to_short ... ok [INFO] [stdout] test liquidation::domain::state::tests::test_user_state_new ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_entry_price_closing_position ... ok [INFO] [stdout] test liquidation::domain::calculator::tests::test_calculator_long_position ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_entry_price_reducing_long ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_entry_price_flipping_short_to_long ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_entry_price_adding_to_short ... ok [INFO] [stdout] test liquidation::domain::events::tests::test_domain_event_variants ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_liq_price_long_verify_liquidation_condition ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_entry_price_opening_position ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_liq_price_long_with_50x_leverage ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_liq_price_short_larger_position ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_entry_price_reducing_short ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_signed_px_addition ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_signed_px_negative ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_signed_px_new_and_value ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_signed_px_parse_negative ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_signed_px_parse_positive ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_signed_px_positive ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_signed_px_subtraction ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_signed_px_to_str_negative ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_liq_price_short_position ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_liq_price_short_verify_liquidation_condition ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_liq_price_zero_size_returns_none ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_signed_px_to_px_positive ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_signed_px_to_px_negative_returns_none ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_signed_px_from_px ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_signed_px_to_str_positive ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_signed_px_to_px_zero ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_signed_px_to_str_zero ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_signed_px_zero ... ok [INFO] [stdout] test liquidation::infrastructure::asset_mapper::tests::test_builder_perps_return_none ... ok [INFO] [stdout] test liquidation::info_client::tests::test_deserialize_clearinghouse_state ... ok [INFO] [stdout] test liquidation::info_client::tests::test_parse_liquidation_price ... ok [INFO] [stdout] test liquidation::info_client::tests::test_deserialize_info_request ... ok [INFO] [stdout] test liquidation::infrastructure::asset_mapper::tests::test_as_lookup_fn ... ok [INFO] [stdout] test liquidation::application::computer::tests::test_computer_compute_price_isolated ... ok [INFO] [stdout] test liquidation::infrastructure::asset_mapper::tests::test_hardcoded_mappings ... ok [INFO] [stdout] test liquidation::application::service::tests::test_service_multiple_users ... ok [INFO] [stdout] test liquidation::infrastructure::asset_mapper::tests::test_mapper_new_is_empty ... ok [INFO] [stdout] test liquidation::infrastructure::asset_mapper::tests::test_spot_assets_return_none ... ok [INFO] [stdout] test liquidation::infrastructure::asset_mapper::tests::test_populate_skips_spot_coins ... ok [INFO] [stdout] test liquidation::infrastructure::asset_mapper::tests::test_populate_from_universe ... ok [INFO] [stdout] test liquidation::infrastructure::event_watcher::tests::test_parse_block_time ... ok [INFO] [stdout] test liquidation::infrastructure::asset_mapper::tests::test_thread_safety ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_liq_price_long_position ... ok [INFO] [stdout] test liquidation::domain::state::tests::test_user_state_cross_account_value_no_positions ... ok [INFO] [stdout] test liquidation::infrastructure::event_watcher::tests::test_process_replica_cmds_line_creates_leverage_changed_event ... ok [INFO] [stdout] test liquidation::infrastructure::fill_adapter::tests::test_parse_open_long_fill ... ok [INFO] [stdout] test liquidation::infrastructure::event_watcher::tests::test_watcher_is_reading_initially_false ... ok [INFO] [stdout] test liquidation::infrastructure::fill_adapter::tests::test_parse_open_short_fill ... ok [INFO] [stdout] test liquidation::infrastructure::fill_adapter::tests::test_parse_close_short_fill ... ok [INFO] [stdout] test liquidation::infrastructure::event_watcher::tests::test_process_replica_cmds_unknown_asset_skipped ... ok [INFO] [stdout] test liquidation::infrastructure::fill_adapter::tests::test_parse_close_long_fill ... ok [INFO] [stdout] test liquidation::infrastructure::fill_adapter::tests::test_parse_spot_buy_fill ... ok [INFO] [stdout] test liquidation::infrastructure::mark_price_adapter::tests::test_compute_mid_price_basic ... ok [INFO] [stdout] test liquidation::infrastructure::fill_adapter::tests::test_parse_fill_batch_json ... ok [INFO] [stdout] test liquidation::infrastructure::mark_price_adapter::tests::test_compute_mid_price_from_inner ... ok [INFO] [stdout] test liquidation::infrastructure::mark_price_adapter::tests::test_compute_mid_price_empty_book ... ok [INFO] [stdout] test liquidation::application::computer::tests::test_computer_compute_levels ... ok [INFO] [stdout] test liquidation::infrastructure::event_watcher::tests::test_process_fills_line_creates_position_changed_event ... ok [INFO] [stdout] test liquidation::infrastructure::event_watcher::tests::test_process_misc_events_line_deposit ... ok [INFO] [stdout] test liquidation::infrastructure::event_watcher::tests::test_process_misc_events_line_funding ... ok [INFO] [stdout] test liquidation::domain::types::tests::test_liq_price_larger_position ... ok [INFO] [stdout] test liquidation::infrastructure::fill_adapter::tests::test_parse_spot_sell_fill ... ok [INFO] [stdout] test liquidation::infrastructure::mark_price_adapter::tests::test_compute_mid_price_fractional ... ok [INFO] [stdout] test liquidation::infrastructure::mark_price_adapter::tests::test_compute_mid_price_from_inner_empty_bids ... ok [INFO] [stdout] test liquidation::infrastructure::mark_price_adapter::tests::test_compute_mid_price_no_asks ... ok [INFO] [stdout] test liquidation::infrastructure::mark_price_adapter::tests::test_compute_mid_price_no_bids ... ok [INFO] [stdout] test liquidation::infrastructure::mark_price_adapter::tests::test_compute_mid_price_from_inner_empty_asks ... ok [INFO] [stdout] test liquidation::infrastructure::mark_price_adapter::tests::test_compute_mid_price_tight_spread ... ok [INFO] [stdout] test liquidation::infrastructure::mark_price_adapter::tests::test_precision_with_tiny_spread ... ok [INFO] [stdout] test liquidation::infrastructure::mark_price_adapter::tests::test_to_event ... ok [INFO] [stdout] test liquidation::infrastructure::mark_price_adapter::tests::test_precision_with_small_prices ... ok [INFO] [stdout] test liquidation::infrastructure::misc_event_adapter::tests::test_parse_deposit ... ok [INFO] [stdout] test liquidation::infrastructure::mark_price_adapter::tests::test_to_event_from_inner ... ok [INFO] [stdout] test liquidation::infrastructure::mark_price_adapter::tests::test_compute_mid_price_odd_spread ... ok [INFO] [stdout] test liquidation::infrastructure::misc_event_adapter::tests::test_parse_spot_transfer ... ok [INFO] [stdout] test liquidation::infrastructure::misc_event_adapter::tests::test_parse_funding_positive ... ok [INFO] [stdout] test liquidation::infrastructure::misc_event_adapter::tests::test_parse_misc_event_batch_json ... ok [INFO] [stdout] test liquidation::infrastructure::misc_event_adapter::tests::test_parse_funding_negative ... ok [INFO] [stdout] test liquidation::infrastructure::misc_event_adapter::tests::test_parse_withdraw ... ok [INFO] [stdout] test liquidation::infrastructure::replica_cmd_adapter::tests::test_parse_evm_raw_tx_action ... ok [INFO] [stdout] test liquidation::infrastructure::replica_cmd_adapter::tests::test_parse_order_action_with_data ... ok [INFO] [stdout] test liquidation::infrastructure::replica_cmd_adapter::tests::test_parse_production_data_file ... ok [INFO] [stdout] test liquidation::infrastructure::replica_cmd_adapter::tests::test_parse_signed_action_with_order_data ... ok [INFO] [stdout] test liquidation::infrastructure::replica_cmd_adapter::tests::test_parse_abci_block_format ... ok [INFO] [stdout] test liquidation::infrastructure::replica_cmd_adapter::tests::test_parse_replica_cmd_other_action ... ok [INFO] [stdout] test liquidation::infrastructure::replica_cmd_adapter::tests::test_parse_replica_cmd_json_plan_format ... ok [INFO] [stdout] test liquidation::infrastructure::replica_cmd_adapter::tests::test_parse_production_replica_batch ... ok [INFO] [stdout] test liquidation::infrastructure::state_adapter::tests::test_deserialize_clearinghouse_state ... ok [INFO] [stdout] test liquidation::infrastructure::misc_event_adapter::tests::test_parse_misc_event_batch_with_funding ... ok [INFO] [stdout] test liquidation::infrastructure::state_adapter::tests::test_parse_state_empty_positions ... ok [INFO] [stdout] test liquidation::infrastructure::state_adapter::tests::test_parse_state_with_cross_position ... ok [INFO] [stdout] test liquidation::infrastructure::state_adapter::tests::test_parse_state_with_short_position ... ok [INFO] [stdout] test liquidation::levels::tests::test_compute_different_sig_figs ... ok [INFO] [stdout] test liquidation::levels::tests::test_compute_empty_positions ... ok [INFO] [stdout] test liquidation::levels::tests::test_compute_longs_sorted_descending ... ok [INFO] [stdout] test liquidation::levels::tests::test_compute_mixed_longs_and_shorts ... ok [INFO] [stdout] test liquidation::infrastructure::replica_cmd_adapter::tests::test_parse_update_leverage_cross ... ok [INFO] [stdout] test liquidation::infrastructure::replica_cmd_adapter::tests::test_parse_update_leverage_isolated ... ok [INFO] [stdout] test liquidation::levels::tests::test_compute_multiple_positions_bucketing ... ok [INFO] [stdout] test liquidation::levels::tests::test_compute_positions_without_liquidation_px ... ok [INFO] [stdout] test liquidation::levels::tests::test_compute_shorts_sorted_ascending ... ok [INFO] [stdout] test liquidation::levels::tests::test_compute_notional_aggregation ... ok [INFO] [stdout] test liquidation::levels::tests::test_compute_single_short_position ... ok [INFO] [stdout] test liquidation::levels::tests::test_compute_skip_zero_positions ... ok [INFO] [stdout] test liquidation::levels::tests::test_format_notional ... ok [INFO] [stdout] test liquidation::levels::tests::test_round_to_sig_figs_basic ... ok [INFO] [stdout] test liquidation::levels::tests::test_round_to_sig_figs_side_aware ... ok [INFO] [stdout] test liquidation::levels::tests::test_round_to_sig_figs_edge_cases ... ok [INFO] [stdout] test liquidation::orchestrator::tests::test_mark_price_fallback_when_tracked_empty ... ok [INFO] [stdout] test liquidation::orchestrator::tests::test_fill_event_triggers_level_broadcast ... ok [INFO] [stdout] test liquidation::orchestrator::tests::test_mark_price_filters_when_tracked_nonempty ... ok [INFO] [stdout] test liquidation::orchestrator::tests::test_orchestrator_bootstrap_from_source ... ok [INFO] [stdout] test liquidation::orchestrator::tests::test_orchestrator_compute_levels ... ok [INFO] [stdout] test liquidation::orchestrator::tests::test_orchestrator_not_ready_initially ... ok [INFO] [stdout] test liquidation::orchestrator::tests::test_orchestrator_broadcasts_levels_on_event ... ok [INFO] [stdout] test liquidation::orchestrator::tests::test_orchestrator_tracked_coins_empty_initially ... ok [INFO] [stdout] test liquidation::ports::traits::tests::test_asset_info_new ... ok [INFO] [stdout] test liquidation::orchestrator::tests::test_orchestrator_tracked_coins_after_position ... ok [INFO] [stdout] test liquidation::orchestrator::tests::test_run_realtime_liquidation_service_exists ... ok [INFO] [stdout] test liquidation::ports::traits::tests::test_asset_info_with_tiers ... ok [INFO] [stdout] test liquidation::position::tests::test_all_users_empty ... ok [INFO] [stdout] test liquidation::position::tests::test_all_users_single_user ... ok [INFO] [stdout] test liquidation::position::tests::test_apply_funding_deltas_clears_previous_state ... ok [INFO] [stdout] test liquidation::position::tests::test_apply_funding_deltas_multiple_users ... ok [INFO] [stdout] test liquidation::position::tests::test_apply_funding_deltas_single_position ... ok [INFO] [stdout] test liquidation::position::tests::test_apply_funding_deltas_skips_zero_positions ... ok [INFO] [stdout] test liquidation::infrastructure::misc_event_adapter::tests::test_parse_block_time ... ok [INFO] [stdout] test liquidation::infrastructure::replica_cmd_adapter::tests::test_parse_signed_action_with_signature ... ok [INFO] [stdout] test liquidation::position::tests::test_clear ... ok [INFO] [stdout] test liquidation::infrastructure::state_adapter::tests::test_info_request_serialization ... ok [INFO] [stdout] test liquidation::position::tests::test_invalid_funding_delta_gracefully_skipped ... ok [INFO] [stdout] test liquidation::infrastructure::state_adapter::tests::test_parse_state_skips_zero_size_positions ... ok [INFO] [stdout] test liquidation::position::tests::test_long_and_short_positions ... ok [INFO] [stdout] test liquidation::infrastructure::state_adapter::tests::test_parse_state_with_isolated_position ... ok [INFO] [stdout] test liquidation::position::tests::test_new_position_state_is_empty ... ok [INFO] [stdout] test liquidation::infrastructure::state_adapter::tests::test_parse_state_with_multiple_positions ... ok [INFO] [stdout] test liquidation::levels::tests::test_compute_single_long_position ... ok [INFO] [stdout] test liquidation::infrastructure::mark_price_adapter::tests::test_to_event_from_inner_btc_precision ... ok [INFO] [stdout] test liquidation::position::tests::test_position_notional_calculation ... ok [INFO] [stdout] test liquidation::position::tests::test_set_liquidation_price_nonexistent_position ... ok [INFO] [stdout] test liquidation::position::tests::test_users_for_coin_empty ... ok [INFO] [stdout] test liquidation::position::tests::test_users_for_coin_multiple_users ... ok [INFO] [stdout] test liquidation::position::tests::test_positions_for_coin_empty ... ok [INFO] [stdout] test liquidation::service::tests::test_hourly_only_strategy_refreshes_on_funding ... ok [INFO] [stdout] test liquidation::position::tests::test_set_liquidation_price ... ok [INFO] [stdout] test liquidation::service::tests::test_hourly_only_strategy_skips_fills ... ok [INFO] [stdout] test liquidation::position::tests::test_positions_for_coin_multiple_positions ... ok [INFO] [stdout] test liquidation::position::tests::test_positions_for_coin_single_position ... ok [INFO] [stdout] test liquidation::position::tests::test_users_for_coin_single_user ... ok [INFO] [stdout] test liquidation::service::tests::test_compute_levels_per_client_n_sig_figs ... ok [INFO] [stdout] test liquidation::service::tests::test_service_initial_state ... ok [INFO] [stdout] test liquidation::service::tests::test_service_compute_all_levels ... ok [INFO] [stdout] test liquidation::types::tests::test_funding_delta_deserialization ... ok [INFO] [stdout] test liquidation::position::tests::test_secondary_index_consistency ... ok [INFO] [stdout] test liquidation::types::tests::test_position_is_long_short ... ok [INFO] [stdout] test liquidation::service::tests::test_service_processes_funding_event ... ok [INFO] [stdout] test liquidation::types::tests::test_liquidation_level_serialization ... ok [INFO] [stdout] test liquidation::types::tests::test_position_maintenance_margin ... ok [INFO] [stdout] test liquidation::types::tests::test_position_maintenance_margin_50x ... ok [INFO] [stdout] test liquidation::types::tests::test_position_unrealized_pnl_long_loss ... ok [INFO] [stdout] test liquidation::types::tests::test_position_notional_larger_size ... ok [INFO] [stdout] test liquidation::types::tests::test_position_with_margin_constructor ... ok [INFO] [stdout] test liquidation::types::tests::test_signed_sz_abs ... ok [INFO] [stdout] test liquidation::position::tests::test_all_users_multiple_coins ... ok [INFO] [stdout] test liquidation::types::tests::test_position_unrealized_pnl_short_profit ... ok [INFO] [stdout] test liquidation::types::tests::test_position_unrealized_pnl_long_profit ... ok [INFO] [stdout] test liquidation::types::tests::test_position_unrealized_pnl_short_loss ... ok [INFO] [stdout] test liquidation::types::tests::test_signed_sz_parse_positive ... ok [INFO] [stdout] test liquidation::types::tests::test_signed_sz_parse_zero ... ok [INFO] [stdout] test liquidation::types::tests::test_liquidation_levels_truncate ... ok [INFO] [stdout] test order_book::linked_list::tests::simple_linked_list_test ... ok [INFO] [stdout] test order_book::multi_book::tests::test_deserialization ... ok [INFO] [stdout] test liquidation::types::tests::test_signed_sz_parse_negative ... ok [INFO] [stdout] test listeners::funding::tests::test_funding_event_deserialization ... ok [INFO] [stdout] test listeners::funding::tests::test_funding_event_with_positions ... ok [INFO] [stdout] test liquidation::types::tests::test_position_isolated_margin ... ok [INFO] [stdout] test liquidation::types::tests::test_liquidation_levels_truncate_larger_than_available ... ok [INFO] [stdout] test liquidation::types::tests::test_position_notional ... ok [INFO] [stdout] test order_book::multi_book::tests::test_deserialization_from_json ... FAILED [INFO] [stdout] test order_book::tests::simple_book_test ... ok [INFO] [stdout] test order_book::multi_book::tests::test_l4_snapshot_to_l2_snapshot ... ok [INFO] [stdout] test servers::websocket_server::tests::test_liquidation_levels_no_snapshot_when_no_service ... ok [INFO] [stdout] test types::node_data::tests::test_misc_events_batch_empty ... ok [INFO] [stdout] test servers::websocket_server::tests::test_orchestrator_snapshot_returns_none_when_not_ready ... ok [INFO] [stdout] test servers::websocket_server::tests::test_orchestrator_snapshot_returns_levels_when_ready ... ok [INFO] [stdout] test servers::websocket_server::tests::test_liquidation_levels_no_snapshot_when_not_ready ... ok [INFO] [stdout] test servers::websocket_server::tests::test_liquidation_levels_snapshot_on_subscribe_when_ready ... ok [INFO] [stdout] test types::node_data::tests::test_misc_events_batch_with_funding ... ok [INFO] [stdout] test types::node_data::tests::test_twap_batch_empty_events ... ok [INFO] [stdout] test types::subscription::test::test_liquidation_levels_n_levels_helper ... ok [INFO] [stdout] test types::subscription::test::test_client_message_deserialization ... ok [INFO] [stdout] test types::subscription::test::test_liquidation_levels_subscription_with_n_levels ... ok [INFO] [stdout] test types::node_data::tests::test_twap_batch_deserialization ... ok [INFO] [stdout] test types::subscription::test::test_liquidation_levels_subscription_deserialization ... ok [INFO] [stdout] test types::subscription::test::test_liquidation_levels_validation_n_levels_max ... ok [INFO] [stdout] test types::subscription::test::test_liquidation_levels_subscription_with_sig_figs ... ok [INFO] [stdout] test types::subscription::test::test_message_deserialization_l2book ... ok [INFO] [stdout] test types::subscription::test::test_twap_response_serialization ... ok [INFO] [stdout] test types::subscription::test::test_twap_subscription_deserialization ... ok [INFO] [stdout] test types::subscription::test::test_message_deserialization_subscription_response ... ok [INFO] [stdout] test types::subscription::test::test_message_deserialization_trade ... ok [INFO] [stdout] test servers::websocket_server::tests::test_liquidation_levels_snapshot_respects_n_levels ... ok [INFO] [stdout] test liquidation::domain::calculator::tests::test_calculator_trait_is_send_sync ... ok [INFO] [stdout] test liquidation::infrastructure::mark_price_adapter::tests::test_to_event_empty_book ... ok [INFO] [stdout] test types::subscription::test::test_liquidation_levels_response_serialization ... ok [INFO] [stdout] test listeners::funding::tests::test_bootstrap_no_funding_event_found ... ok [INFO] [stdout] test listeners::funding::tests::test_bootstrap_finds_last_funding_event ... ok [INFO] [stdout] test listeners::funding::tests::test_cold_start_processes_existing_files ... ok [INFO] [stdout] test listeners::directory::tests::test_trade_listener ... FAILED [INFO] [stdout] test liquidation::info_client::tests::test_empty_users_returns_empty_map ... ok [INFO] [stdout] test liquidation::infrastructure::state_adapter::tests::test_fetch_state_empty_users ... ok [INFO] [stdout] test liquidation::info_client::tests::test_info_client_basic_flow ... ok [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- order_book::multi_book::tests::test_deserialization_from_json stdout ---- [INFO] [stdout] Error: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } [INFO] [stdout] [INFO] [stdout] ---- listeners::directory::tests::test_trade_listener stdout ---- [INFO] [stdout] Error: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" } [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] listeners::directory::tests::test_trade_listener [INFO] [stdout] order_book::multi_book::tests::test_deserialization_from_json [INFO] [stdout] [INFO] [stdout] test result: FAILED. 240 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `-p server --lib` [INFO] running `Command { std: "docker" "inspect" "2e586af2ce3a2d78ea3aa6cacef4bb4ea2a33438f27b3a5b0073154367e9ec24", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2e586af2ce3a2d78ea3aa6cacef4bb4ea2a33438f27b3a5b0073154367e9ec24", kill_on_drop: false }` [INFO] [stdout] 2e586af2ce3a2d78ea3aa6cacef4bb4ea2a33438f27b3a5b0073154367e9ec24