[INFO] cloning repository https://github.com/Amachik/pollyMorph
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Amachik/pollyMorph" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAmachik%2FpollyMorph", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAmachik%2FpollyMorph'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0f6aa443a8bac03c9b0233fbc14424dadda5671b
[INFO] checking Amachik/pollyMorph against master#3f6250a7bb79e600d9036bbc7c8f65af43933643 for pr-147859
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAmachik%2FpollyMorph" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-6-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/Amachik/pollyMorph
[INFO] finished tweaking git repo https://github.com/Amachik/pollyMorph
[INFO] tweaked toml for git repo https://github.com/Amachik/pollyMorph written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Amachik/pollyMorph on toolchain 3f6250a7bb79e600d9036bbc7c8f65af43933643
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3f6250a7bb79e600d9036bbc7c8f65af43933643" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Amachik/pollyMorph 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" "+3f6250a7bb79e600d9036bbc7c8f65af43933643" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded headers-core v0.2.0
[INFO] [stderr]   Downloaded tokio-test v0.4.5
[INFO] [stderr]   Downloaded hex-literal v0.4.1
[INFO] [stderr]   Downloaded alloy-rlp v0.3.13
[INFO] [stderr]   Downloaded headers v0.3.9
[INFO] [stderr]   Downloaded keccak-asm v0.1.5
[INFO] [stderr]   Downloaded nonzero_ext v0.3.0
[INFO] [stderr]   Downloaded core_affinity v0.8.3
[INFO] [stderr]   Downloaded quanta v0.12.6
[INFO] [stderr]   Downloaded alloy-sol-macro v0.6.4
[INFO] [stderr]   Downloaded alloy-primitives v0.6.4
[INFO] [stderr]   Downloaded procfs-core v0.16.0
[INFO] [stderr]   Downloaded prometheus v0.13.4
[INFO] [stderr]   Downloaded raw-cpuid v11.6.0
[INFO] [stderr]   Downloaded governor v0.6.3
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.38
[INFO] [stderr]   Downloaded protobuf v2.28.0
[INFO] [stderr]   Downloaded clap_builder v4.5.57
[INFO] [stderr]   Downloaded procfs v0.16.0
[INFO] [stderr]   Downloaded warp v0.3.7
[INFO] [stderr]   Downloaded zerocopy v0.8.38
[INFO] [stderr]   Downloaded syn-solidity v0.6.4
[INFO] [stderr]   Downloaded alloy-sol-types v0.6.4
[INFO] [stderr]   Downloaded clap v4.5.57
[INFO] [stderr]   Downloaded spinning_top v0.3.0
[INFO] [stderr]   Downloaded sha3-asm v0.1.5
[INFO] [stderr]   Downloaded rtrb v0.3.2
[INFO] [stderr]   Downloaded no-std-compat v0.4.1
[INFO] [stderr]   Downloaded zmij v1.0.19
[INFO] [stderr]   Downloaded multer v2.1.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+3f6250a7bb79e600d9036bbc7c8f65af43933643" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e9201fc1f8b78d6102fa4547f0305301888e4086da886b404db3ba84b2e2a55a
[INFO] running `Command { std: "docker" "start" "-a" "e9201fc1f8b78d6102fa4547f0305301888e4086da886b404db3ba84b2e2a55a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e9201fc1f8b78d6102fa4547f0305301888e4086da886b404db3ba84b2e2a55a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e9201fc1f8b78d6102fa4547f0305301888e4086da886b404db3ba84b2e2a55a", kill_on_drop: false }`
[INFO] [stdout] e9201fc1f8b78d6102fa4547f0305301888e4086da886b404db3ba84b2e2a55a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+3f6250a7bb79e600d9036bbc7c8f65af43933643" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 576d303ab04042393c758f88c87219f10309cf19a72bd81c552511910182de1d
[INFO] running `Command { std: "docker" "start" "-a" "576d303ab04042393c758f88c87219f10309cf19a72bd81c552511910182de1d", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling generic-array v0.14.9
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]    Compiling zerocopy v0.8.38
[INFO] [stderr]     Checking itoa v1.0.17
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]     Checking const-oid v0.9.6
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling cc v1.2.55
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]    Compiling toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]    Compiling const_format_proc_macros v0.2.34
[INFO] [stderr]    Compiling toml_parser v1.0.6+spec-1.1.0
[INFO] [stderr]    Compiling zmij v1.0.19
[INFO] [stderr]    Compiling parity-scale-codec v3.7.5
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling toml_edit v0.23.10+spec-1.0.0
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking futures-sink v0.3.31
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]    Compiling proc-macro-crate v3.4.0
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking unicode-ident v1.0.22
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling rlp-derive v0.1.0
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking socket2 v0.6.2
[INFO] [stderr]     Checking der v0.7.10
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]     Checking litemap v0.8.1
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]     Checking writeable v0.6.2
[INFO] [stderr]     Checking rustc-hex v2.1.0
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking const_format v0.2.35
[INFO] [stderr]     Checking byte-slice-cast v1.2.3
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling camino v1.2.2
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]     Checking slab v0.4.12
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking ff v0.13.1
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]     Checking regex-syntax v0.8.9
[INFO] [stderr]     Checking base16ct v0.2.0
[INFO] [stderr]     Checking sha3 v0.10.8
[INFO] [stderr]     Checking group v0.13.0
[INFO] [stderr]     Checking crypto-bigint v0.5.5
[INFO] [stderr]     Checking spki v0.7.3
[INFO] [stderr]     Checking pkcs8 v0.10.2
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking sec1 v0.7.3
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.108
[INFO] [stderr]     Checking rfc6979 v0.4.0
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking elliptic-curve v0.13.8
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking uint v0.9.5
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]     Checking ecdsa v0.16.9
[INFO] [stderr]     Checking const-hex v1.17.0
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]     Checking k256 v0.13.4
[INFO] [stderr]    Compiling bumpalo v3.19.1
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerocopy-derive v0.8.38
[INFO] [stderr]    Compiling parity-scale-codec-derive v3.7.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling impl-trait-for-tuples v0.2.3
[INFO] [stderr]    Compiling derive_more-impl v1.0.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling scale-info-derive v2.11.6
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]     Checking derive_more v1.0.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]    Compiling auto_impl v1.3.0
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling num_enum_derive v0.7.5
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]     Checking bytes v1.11.1
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking impl-codec v0.6.0
[INFO] [stderr]     Checking scale-info v2.11.6
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]     Checking rlp v0.5.2
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]    Compiling open-fastrlp-derive v0.1.1
[INFO] [stderr]     Checking impl-rlp v0.3.0
[INFO] [stderr]     Checking impl-serde v0.4.0
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking cargo-platform v0.1.9
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.108
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]    Compiling fixed-hash v0.8.0
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking primitive-types v0.12.2
[INFO] [stderr]     Checking ethbloom v0.13.0
[INFO] [stderr]     Checking semver v1.0.27
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]    Compiling wasm-bindgen v0.2.108
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking httpdate v1.0.3
[INFO] [stderr]     Checking fastrand v2.3.0
[INFO] [stderr]     Checking iana-time-zone v0.1.65
[INFO] [stderr]     Checking ryu v1.0.22
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking ethereum-types v0.14.1
[INFO] [stderr]     Checking chrono v0.4.43
[INFO] [stderr]     Checking tempfile v3.24.0
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking open-fastrlp v0.1.4
[INFO] [stderr]     Checking ethabi v18.0.0
[INFO] [stderr]     Checking cargo_metadata v0.18.1
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.108
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking num_enum v0.7.5
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]     Checking data-encoding v2.10.0
[INFO] [stderr]     Checking utf-8 v0.7.6
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]     Checking ethers-core v2.0.14
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking tokio-rustls v0.24.1
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling keccak v0.1.5
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling num-conv v0.2.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling time-macros v0.2.26
[INFO] [stderr]     Checking js-sys v0.3.85
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]     Checking webpki-roots v0.25.4
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]     Checking time v0.3.46
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]     Checking pin-project v1.1.10
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking gloo-timers v0.2.6
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking bs58 v0.5.1
[INFO] [stderr]     Checking rustls-pemfile v1.0.4
[INFO] [stderr]     Checking ripemd v0.1.3
[INFO] [stderr]     Checking spin v0.5.2
[INFO] [stderr]     Checking send_wrapper v0.4.0
[INFO] [stderr]     Checking base64 v0.13.1
[INFO] [stderr]    Compiling indenter v0.3.4
[INFO] [stderr]     Checking lexical-util v1.0.7
[INFO] [stderr]     Checking sync_wrapper v0.1.2
[INFO] [stderr]     Checking bech32 v0.9.1
[INFO] [stderr]     Checking untrusted v0.7.1
[INFO] [stderr]     Checking pem v1.1.1
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling eyre v0.6.12
[INFO] [stderr]     Checking hyper-rustls v0.24.2
[INFO] [stderr]    Compiling Inflector v0.11.4
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]     Checking futures-timer v3.0.3
[INFO] [stderr]    Compiling pest v2.8.5
[INFO] [stderr]     Checking coins-core v0.8.7
[INFO] [stderr]     Checking simple_asn1 v0.6.3
[INFO] [stderr]     Checking salsa20 v0.10.2
[INFO] [stderr]     Checking tungstenite v0.20.1
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]     Checking fxhash v0.2.1
[INFO] [stderr]     Checking pbkdf2 v0.11.0
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking bitvec v1.0.1
[INFO] [stderr]     Checking tokio-tungstenite v0.20.1
[INFO] [stderr]     Checking const-random v0.1.18
[INFO] [stderr]     Checking scrypt v0.10.0
[INFO] [stderr]     Checking hashers v1.0.1
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking jsonwebtoken v8.3.0
[INFO] [stderr]     Checking coins-bip32 v0.8.7
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking tracing-futures v0.2.5
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]    Compiling pest_meta v2.8.5
[INFO] [stderr]     Checking enr v0.10.0
[INFO] [stderr]     Checking uuid v0.8.2
[INFO] [stderr]     Checking pbkdf2 v0.12.2
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking ethers-providers v2.0.14
[INFO] [stderr]     Checking ethers-contract-abigen v2.0.14
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]     Checking eth-keystore v0.5.0
[INFO] [stderr]    Compiling pest_generator v2.8.5
[INFO] [stderr]     Checking dlv-list v0.5.2
[INFO] [stderr]     Checking lexical-write-integer v1.0.6
[INFO] [stderr]     Checking coins-bip39 v0.8.7
[INFO] [stderr]     Checking lexical-parse-integer v1.0.6
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]    Compiling libmimalloc-sys v0.1.44
[INFO] [stderr]    Compiling multer v2.1.0
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling procfs v0.16.0
[INFO] [stderr]    Compiling convert_case v0.4.0
[INFO] [stderr]    Compiling ruint-macro v1.2.1
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling protobuf v2.28.0
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]     Checking ruint v1.17.2
[INFO] [stderr]    Compiling pest_derive v2.8.5
[INFO] [stderr]     Checking tungstenite v0.21.0
[INFO] [stderr]     Checking lexical-parse-float v1.0.6
[INFO] [stderr]     Checking ethers-signers v2.0.14
[INFO] [stderr]     Checking lexical-write-float v1.0.6
[INFO] [stderr]    Compiling syn-solidity v0.6.4
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking ordered-multimap v0.7.3
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking ethers-etherscan v2.0.14
[INFO] [stderr]     Checking halfbrown v0.2.5
[INFO] [stderr]     Checking hashlink v0.8.4
[INFO] [stderr]     Checking headers-core v0.2.0
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]     Checking futures-locks v0.7.1
[INFO] [stderr]     Checking float-cmp v0.9.0
[INFO] [stderr]     Checking procfs-core v0.16.0
[INFO] [stderr]     Checking raw-cpuid v11.6.0
[INFO] [stderr]    Compiling prometheus v0.13.4
[INFO] [stderr]     Checking hex-literal v0.4.1
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking arraydeque v0.5.1
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]    Compiling rust_decimal v1.40.0
[INFO] [stderr]     Checking convert_case v0.6.0
[INFO] [stderr]     Checking yaml-rust2 v0.8.1
[INFO] [stderr]     Checking safe_arch v0.7.4
[INFO] [stderr]     Checking alloy-primitives v0.6.4
[INFO] [stderr]     Checking value-trait v0.8.1
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking headers v0.3.9
[INFO] [stderr]     Checking rust-ini v0.20.0
[INFO] [stderr]     Checking json5 v0.4.1
[INFO] [stderr]     Checking tokio-tungstenite v0.21.0
[INFO] [stderr]     Checking lexical-core v1.0.6
[INFO] [stderr]     Checking dashmap v5.5.3
[INFO] [stderr]     Checking spinning_top v0.3.0
[INFO] [stderr]     Checking quanta v0.12.6
[INFO] [stderr]     Checking ethers-addressbook v2.0.14
[INFO] [stderr]     Checking crossbeam-queue v0.3.12
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking tracing-serde v0.2.0
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]    Compiling alloy-sol-macro v0.6.4
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]    Compiling ethers-contract-derive v2.0.14
[INFO] [stderr]     Checking ciborium-io v0.2.2
[INFO] [stderr]     Checking pathdiff v0.2.3
[INFO] [stderr]     Checking plotters-backend v0.3.7
[INFO] [stderr]     Checking clap_lex v0.7.7
[INFO] [stderr]     Checking nonzero_ext v0.3.0
[INFO] [stderr]     Checking nu-ansi-term v0.50.3
[INFO] [stderr]     Checking simdutf8 v0.1.5
[INFO] [stderr]     Checking no-std-compat v0.4.1
[INFO] [stderr]     Checking governor v0.6.3
[INFO] [stderr]     Checking plotters-svg v0.3.7
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking warp v0.3.7
[INFO] [stderr]     Checking simd-json v0.13.11
[INFO] [stderr]     Checking clap_builder v4.5.57
[INFO] [stderr]     Checking config v0.14.1
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking core_affinity v0.8.3
[INFO] [stderr]     Checking crossbeam v0.8.4
[INFO] [stderr]     Checking mimalloc v0.1.48
[INFO] [stderr]     Checking ethers-contract v2.0.14
[INFO] [stderr]     Checking wide v0.7.33
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]    Compiling rust_decimal_macros v1.40.0
[INFO] [stderr]     Checking fs2 v0.4.3
[INFO] [stderr]     Checking rtrb v0.3.2
[INFO] [stderr]     Checking dotenvy v0.15.7
[INFO] [stderr]     Checking cast v0.3.0
[INFO] [stderr]     Checking const-fnv1a-hash v1.1.0
[INFO] [stderr]     Checking clap v4.5.57
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking alloy-sol-types v0.6.4
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking oorandom v11.1.5
[INFO] [stderr]     Checking anes v0.1.6
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking tokio-test v0.4.5
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stderr]     Checking ethers-middleware v2.0.14
[INFO] [stderr]     Checking ethers v2.0.14
[INFO] [stderr]     Checking polymorph-hft v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> src/types.rs:8:26
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Serialize};
[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: `PriceLevel`
[INFO] [stdout]  --> src/pricing.rs:6:49
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::types::{MarketId, OrderBookSnapshot, PriceLevel, Side, TradeSignal, SignalUrgency, OrderType};
[INFO] [stdout]   |                                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicI64`
[INFO] [stdout]   --> src/pricing.rs:13:36
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::sync::atomic::{AtomicU64, AtomicI64, Ordering};
[INFO] [stdout]    |                                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicBool`
[INFO] [stdout]   --> src/execution.rs:22:36
[INFO] [stdout]    |
[INFO] [stdout] 22 | use std::sync::atomic::{AtomicU64, AtomicBool, Ordering as AtomicOrdering};
[INFO] [stdout]    |                                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicU64` and `Ordering`
[INFO] [stdout]   --> src/metrics.rs:11:25
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::sync::atomic::{AtomicU64, Ordering};
[INFO] [stdout]    |                         ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `likely` and `prefetch_l1`
[INFO] [stdout]   --> src/grid.rs:16:20
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::hints::{likely, unlikely, prefetch_l1};
[INFO] [stdout]    |                    ^^^^^^            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicBool`
[INFO] [stdout]   --> src/shadow.rs:21:47
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::sync::atomic::{AtomicU64, AtomicI64, AtomicBool, Ordering};
[INFO] [stdout]    |                                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::grid::GridConfig`
[INFO] [stdout]   --> src/tuner.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::grid::GridConfig;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicI64`
[INFO] [stdout]   --> src/tuner.rs:21:37
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::sync::atomic::{AtomicBool, AtomicI64, AtomicU64, Ordering};
[INFO] [stdout]    |                                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/tuner.rs:25:27
[INFO] [stdout]    |
[INFO] [stdout] 25 | use tracing::{info, warn, error};
[INFO] [stdout]    |                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> src/types.rs:8:26
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Serialize};
[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: `PriceLevel`
[INFO] [stdout]  --> src/pricing.rs:6:49
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::types::{MarketId, OrderBookSnapshot, PriceLevel, Side, TradeSignal, SignalUrgency, OrderType};
[INFO] [stdout]   |                                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicI64`
[INFO] [stdout]   --> src/pricing.rs:13:36
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::sync::atomic::{AtomicU64, AtomicI64, Ordering};
[INFO] [stdout]    |                                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicBool`
[INFO] [stdout]   --> src/execution.rs:22:36
[INFO] [stdout]    |
[INFO] [stdout] 22 | use std::sync::atomic::{AtomicU64, AtomicBool, Ordering as AtomicOrdering};
[INFO] [stdout]    |                                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicU64` and `Ordering`
[INFO] [stdout]   --> src/metrics.rs:11:25
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::sync::atomic::{AtomicU64, Ordering};
[INFO] [stdout]    |                         ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `likely` and `prefetch_l1`
[INFO] [stdout]   --> src/grid.rs:16:20
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::hints::{likely, unlikely, prefetch_l1};
[INFO] [stdout]    |                    ^^^^^^            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicBool`
[INFO] [stdout]   --> src/shadow.rs:21:47
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::sync::atomic::{AtomicU64, AtomicI64, AtomicBool, Ordering};
[INFO] [stdout]    |                                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::grid::GridConfig`
[INFO] [stdout]   --> src/tuner.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::grid::GridConfig;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicI64`
[INFO] [stdout]   --> src/tuner.rs:21:37
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::sync::atomic::{AtomicBool, AtomicI64, AtomicU64, Ordering};
[INFO] [stdout]    |                                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/tuner.rs:25:27
[INFO] [stdout]    |
[INFO] [stdout] 25 | use tracing::{info, warn, error};
[INFO] [stdout]    |                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_decimal::prelude::ToPrimitive`
[INFO] [stdout]   --> src/arb.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use rust_decimal::prelude::ToPrimitive;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_decimal::prelude::ToPrimitive`
[INFO] [stdout]   --> src/arb.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use rust_decimal::prelude::ToPrimitive;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `product_ids`
[INFO] [stdout]    --> src/websocket.rs:953:13
[INFO] [stdout]     |
[INFO] [stdout] 953 |         let product_ids: Vec<&str> = self.config.exchanges.symbols
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_product_ids`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `market_id_str`
[INFO] [stdout]     --> src/pricing.rs:1044:36
[INFO] [stdout]      |
[INFO] [stdout] 1044 |     async fn on_book_update(&self, market_id_str: String, snapshot: OrderBookSnapshot) {
[INFO] [stdout]      |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_market_id_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `force_maker`
[INFO] [stdout]     --> src/pricing.rs:1154:13
[INFO] [stdout]      |
[INFO] [stdout] 1154 |         let force_maker = self.thresholds.must_force_post_only(mid_price);
[INFO] [stdout]      |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_force_maker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filled_value_cents`
[INFO] [stdout]    --> src/risk.rs:531:13
[INFO] [stdout]     |
[INFO] [stdout] 531 |         let filled_value_cents = (report.filled_size * report.price * Decimal::new(100, 0))
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filled_value_cents`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_buy`
[INFO] [stdout]    --> src/risk.rs:673:70
[INFO] [stdout]     |
[INFO] [stdout] 673 |     pub fn record_shadow_trade(&self, price: Decimal, size: Decimal, is_buy: bool) {
[INFO] [stdout]     |                                                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_buy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `product_ids`
[INFO] [stdout]    --> src/websocket.rs:953:13
[INFO] [stdout]     |
[INFO] [stdout] 953 |         let product_ids: Vec<&str> = self.config.exchanges.symbols
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_product_ids`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `market_id_str`
[INFO] [stdout]     --> src/pricing.rs:1044:36
[INFO] [stdout]      |
[INFO] [stdout] 1044 |     async fn on_book_update(&self, market_id_str: String, snapshot: OrderBookSnapshot) {
[INFO] [stdout]      |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_market_id_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `force_maker`
[INFO] [stdout]     --> src/pricing.rs:1154:13
[INFO] [stdout]      |
[INFO] [stdout] 1154 |         let force_maker = self.thresholds.must_force_post_only(mid_price);
[INFO] [stdout]      |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_force_maker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filled_value_cents`
[INFO] [stdout]    --> src/risk.rs:531:13
[INFO] [stdout]     |
[INFO] [stdout] 531 |         let filled_value_cents = (report.filled_size * report.price * Decimal::new(100, 0))
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filled_value_cents`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_buy`
[INFO] [stdout]    --> src/risk.rs:673:70
[INFO] [stdout]     |
[INFO] [stdout] 673 |     pub fn record_shadow_trade(&self, price: Decimal, size: Decimal, is_buy: bool) {
[INFO] [stdout]     |                                                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_buy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/grid.rs:640:13
[INFO] [stdout]     |
[INFO] [stdout] 640 |         let config = GridConfig::default();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trade_price`
[INFO] [stdout]    --> src/shadow.rs:391:31
[INFO] [stdout]     |
[INFO] [stdout] 391 |     pub fn should_fill(&self, trade_price: Decimal, trade_crosses: bool) -> bool {
[INFO] [stdout]     |                               ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trade_price`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/backtester.rs:177:13
[INFO] [stdout]     |
[INFO] [stdout] 177 |         let mut remaining = trade_volume;
[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: `trade_price`
[INFO] [stdout]    --> src/simulator.rs:231:31
[INFO] [stdout]     |
[INFO] [stdout] 231 |     pub fn should_fill(&self, trade_price: Decimal, trade_crosses: bool) -> bool {
[INFO] [stdout]     |                               ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trade_price`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `queue_exhausted`
[INFO] [stdout]    --> src/simulator.rs:763:17
[INFO] [stdout]     |
[INFO] [stdout] 763 |             let queue_exhausted = order.cumulative_volume > order.volume_ahead;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_queue_exhausted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trade_price`
[INFO] [stdout]    --> src/shadow.rs:391:31
[INFO] [stdout]     |
[INFO] [stdout] 391 |     pub fn should_fill(&self, trade_price: Decimal, trade_crosses: bool) -> bool {
[INFO] [stdout]     |                               ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trade_price`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/backtester.rs:177:13
[INFO] [stdout]     |
[INFO] [stdout] 177 |         let mut remaining = trade_volume;
[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: `trade_price`
[INFO] [stdout]    --> src/simulator.rs:231:31
[INFO] [stdout]     |
[INFO] [stdout] 231 |     pub fn should_fill(&self, trade_price: Decimal, trade_crosses: bool) -> bool {
[INFO] [stdout]     |                               ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trade_price`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `queue_exhausted`
[INFO] [stdout]    --> src/simulator.rs:763:17
[INFO] [stdout]     |
[INFO] [stdout] 763 |             let queue_exhausted = order.cumulative_volume > order.volume_ahead;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_queue_exhausted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `question` and `volume` are never read
[INFO] [stdout]   --> src/websocket.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | struct GammaMarket {
[INFO] [stdout]    |        ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 37 |     question: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 38 |     #[serde(rename = "volumeNum", default)]
[INFO] [stdout] 39 |     volume: Option<f64>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GammaMarket` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timestamp` and `hash` are never read
[INFO] [stdout]   --> src/websocket.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct PolymarketBookSnapshot {
[INFO] [stdout]    |        ---------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 50 |     timestamp: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     hash: Option<String>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PolymarketBookSnapshot` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `parse_book_update` is never used
[INFO] [stdout]    --> src/websocket.rs:491:8
[INFO] [stdout]     |
[INFO] [stdout] 168 | impl PolymarketWs {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 491 |     fn parse_book_update(&self, update: &crate::types::BookUpdate, timestamp_ns: u64) -> OrderBookSnapshot {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `market` and `outcome` are never read
[INFO] [stdout]    --> src/websocket.rs:568:5
[INFO] [stdout]     |
[INFO] [stdout] 558 | struct UserChannelMessage<'a> {
[INFO] [stdout]     |        ------------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 568 |     market: Option<&'a str>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 582 |     outcome: Option<&'a str>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UserChannelMessage` 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 `contract_address`, `neg_risk_contract_address`, and `nonce_generator` are never read
[INFO] [stdout]   --> src/signing.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct OrderSigner {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 45 |     contract_address: Address,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// NegRisk exchange address
[INFO] [stdout] 47 |     neg_risk_contract_address: Address,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     nonce_generator: NonceGenerator,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `expected_profit_bps` is never read
[INFO] [stdout]    --> src/execution.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 101 | struct PendingOrder {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 104 |     expected_profit_bps: i32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PendingOrder` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config` and `order_id_counter` are never read
[INFO] [stdout]    --> src/grid.rs:189:5
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub struct GridEngine {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 189 |     config: Arc<Config>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     order_id_counter: AtomicU64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `next_order_id` is never used
[INFO] [stdout]    --> src/grid.rs:521:8
[INFO] [stdout]     |
[INFO] [stdout] 210 | impl GridEngine {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 521 |     fn next_order_id(&self) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_market_id` is never used
[INFO] [stdout]    --> src/grid.rs:607:8
[INFO] [stdout]     |
[INFO] [stdout] 607 |     fn mock_market_id() -> MarketId {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]    --> src/tuner.rs:223:5
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub struct AutoTuner {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 223 |     config: Arc<Config>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_ticks_from_mid` is never used
[INFO] [stdout]    --> src/backtester.rs:519:8
[INFO] [stdout]     |
[INFO] [stdout] 335 | impl Backtester {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 519 |     fn calculate_ticks_from_mid(&self, price: Decimal) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `merge_on_chain`, `redeem_on_chain`, `build_eip1559_tx`, `wait_for_tx`, `query_token_balance`, and `deployed_capital` are never used
[INFO] [stdout]     --> src/arb.rs:2079:14
[INFO] [stdout]      |
[INFO] [stdout]  388 | impl ArbEngine {
[INFO] [stdout]      | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2079 |     async fn merge_on_chain(
[INFO] [stdout]      |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2174 |     async fn redeem_on_chain(
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2255 |     async fn build_eip1559_tx(
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2335 |     async fn wait_for_tx(
[INFO] [stdout]      |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2373 |     async fn query_token_balance(&self, token_id: &str) -> Result<f64, String> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2421 |     fn deployed_capital(&self) -> f64 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `question` and `volume` are never read
[INFO] [stdout]   --> src/websocket.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | struct GammaMarket {
[INFO] [stdout]    |        ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 37 |     question: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 38 |     #[serde(rename = "volumeNum", default)]
[INFO] [stdout] 39 |     volume: Option<f64>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GammaMarket` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timestamp` and `hash` are never read
[INFO] [stdout]   --> src/websocket.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct PolymarketBookSnapshot {
[INFO] [stdout]    |        ---------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 50 |     timestamp: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     hash: Option<String>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PolymarketBookSnapshot` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `parse_book_update` is never used
[INFO] [stdout]    --> src/websocket.rs:491:8
[INFO] [stdout]     |
[INFO] [stdout] 168 | impl PolymarketWs {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 491 |     fn parse_book_update(&self, update: &crate::types::BookUpdate, timestamp_ns: u64) -> OrderBookSnapshot {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `market` and `outcome` are never read
[INFO] [stdout]    --> src/websocket.rs:568:5
[INFO] [stdout]     |
[INFO] [stdout] 558 | struct UserChannelMessage<'a> {
[INFO] [stdout]     |        ------------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 568 |     market: Option<&'a str>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 582 |     outcome: Option<&'a str>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UserChannelMessage` 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 `contract_address`, `neg_risk_contract_address`, and `nonce_generator` are never read
[INFO] [stdout]   --> src/signing.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct OrderSigner {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 45 |     contract_address: Address,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// NegRisk exchange address
[INFO] [stdout] 47 |     neg_risk_contract_address: Address,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     nonce_generator: NonceGenerator,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `expected_profit_bps` is never read
[INFO] [stdout]    --> src/execution.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 101 | struct PendingOrder {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 104 |     expected_profit_bps: i32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PendingOrder` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `config` and `order_id_counter` are never read
[INFO] [stdout]    --> src/grid.rs:189:5
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub struct GridEngine {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 189 |     config: Arc<Config>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     order_id_counter: AtomicU64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `next_order_id` is never used
[INFO] [stdout]    --> src/grid.rs:521:8
[INFO] [stdout]     |
[INFO] [stdout] 210 | impl GridEngine {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 521 |     fn next_order_id(&self) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]    --> src/tuner.rs:223:5
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub struct AutoTuner {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 223 |     config: Arc<Config>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_ticks_from_mid` is never used
[INFO] [stdout]    --> src/backtester.rs:519:8
[INFO] [stdout]     |
[INFO] [stdout] 335 | impl Backtester {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 519 |     fn calculate_ticks_from_mid(&self, price: Decimal) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `merge_on_chain`, `redeem_on_chain`, `build_eip1559_tx`, `wait_for_tx`, `query_token_balance`, and `deployed_capital` are never used
[INFO] [stdout]     --> src/arb.rs:2079:14
[INFO] [stdout]      |
[INFO] [stdout]  388 | impl ArbEngine {
[INFO] [stdout]      | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2079 |     async fn merge_on_chain(
[INFO] [stdout]      |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2174 |     async fn redeem_on_chain(
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2255 |     async fn build_eip1559_tx(
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2335 |     async fn wait_for_tx(
[INFO] [stdout]      |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2373 |     async fn query_token_balance(&self, token_id: &str) -> Result<f64, String> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2421 |     fn deployed_capital(&self) -> f64 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BenchmarkId`
[INFO] [stdout]   --> benches/hot_path.rs:13:72
[INFO] [stdout]    |
[INFO] [stdout] 13 | use criterion::{black_box, criterion_group, criterion_main, Criterion, BenchmarkId};
[INFO] [stdout]    |                                                                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `len` found for type `u64` in the current scope
[INFO] [stdout]    --> tests/integration_order.rs:148:67
[INFO] [stdout]     |
[INFO] [stdout] 148 |     println!("   Salt: {}", &prepared.salt[..20.min(prepared.salt.len())]);
[INFO] [stdout]     |                                                                   ^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `le` with a similar name, but with different arguments
[INFO] [stdout]    --> /rustc/3f6250a7bb79e600d9036bbc7c8f65af43933643/library/core/src/cmp.rs:1420:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0608]: cannot index into a value of type `u64`
[INFO] [stdout]    --> tests/integration_order.rs:148:43
[INFO] [stdout]     |
[INFO] [stdout] 148 |     println!("   Salt: {}", &prepared.salt[..20.min(prepared.salt.len())]);
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: can't compare `u64` with `&str`
[INFO] [stdout]    --> tests/integration_order.rs:323:5
[INFO] [stdout]     |
[INFO] [stdout] 323 |     assert_ne!(order.salt, "0", "salt must be random, not zero");
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `u64 == &str`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `PartialEq<&str>` is not implemented for `u64`
[INFO] [stdout] help: the following other types implement trait `PartialEq<Rhs>`
[INFO] [stdout]    --> /rustc/3f6250a7bb79e600d9036bbc7c8f65af43933643/library/core/src/cmp.rs:1868:12
[INFO] [stdout]     |
[INFO] [stdout]     = note: `u64` implements `PartialEq`
[INFO] [stdout]    ::: /rustc/3f6250a7bb79e600d9036bbc7c8f65af43933643/library/core/src/cmp.rs:1892:5
[INFO] [stdout]     |
[INFO] [stdout]     = note: in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/serde_json-1.0.149/src/value/partial_eq.rs:76:13
[INFO] [stdout]     |
[INFO] [stdout]  76 |               impl PartialEq<Value> for $ty {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `u64` implements `PartialEq<Value>`
[INFO] [stdout] ...
[INFO] [stdout]  97 | / partialeq_numeric! {
[INFO] [stdout]  98 | |     eq_i64[i8 i16 i32 i64 isize]
[INFO] [stdout]  99 | |     eq_u64[u8 u16 u32 u64 usize]
[INFO] [stdout] 100 | |     eq_f32[f32]
[INFO] [stdout] 101 | |     eq_f64[f64]
[INFO] [stdout] 102 | |     eq_bool[bool]
[INFO] [stdout] 103 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: this error originates in the macro `assert_ne` which comes from the expansion of the macro `partialeq_numeric` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prob_outside`
[INFO] [stdout]    --> benches/hot_path.rs:378:9
[INFO] [stdout]     |
[INFO] [stdout] 378 |     let prob_outside = Decimal::new(25, 2);    // 0.25 - outside zone
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prob_outside`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prob_edge`
[INFO] [stdout]    --> benches/hot_path.rs:379:9
[INFO] [stdout]     |
[INFO] [stdout] 379 |     let prob_edge = Decimal::new(10, 2);       // 0.10 - at edge
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_prob_edge`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trade_count`
[INFO] [stdout]    --> benches/hot_path.rs:436:9
[INFO] [stdout]     |
[INFO] [stdout] 436 |     let trade_count = AtomicI64::new(150);
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trade_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `len` found for type `u64` in the current scope
[INFO] [stdout]    --> tests/integration_order.rs:337:64
[INFO] [stdout]     |
[INFO] [stdout] 337 |     println!("   salt: {}...", &order.salt[..20.min(order.salt.len())]);
[INFO] [stdout]     |                                                                ^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `le` with a similar name, but with different arguments
[INFO] [stdout]    --> /rustc/3f6250a7bb79e600d9036bbc7c8f65af43933643/library/core/src/cmp.rs:1420:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0608]: cannot index into a value of type `u64`
[INFO] [stdout]    --> tests/integration_order.rs:337:43
[INFO] [stdout]     |
[INFO] [stdout] 337 |     println!("   salt: {}...", &order.salt[..20.min(order.salt.len())]);
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599, E0608.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `polymorph-hft` (test "integration_order") due to 5 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> src/types.rs:8:26
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Serialize};
[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: `PriceLevel`
[INFO] [stdout]  --> src/pricing.rs:6:49
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::types::{MarketId, OrderBookSnapshot, PriceLevel, Side, TradeSignal, SignalUrgency, OrderType};
[INFO] [stdout]   |                                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicI64`
[INFO] [stdout]   --> src/pricing.rs:13:36
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::sync::atomic::{AtomicU64, AtomicI64, Ordering};
[INFO] [stdout]    |                                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicBool`
[INFO] [stdout]   --> src/execution.rs:22:36
[INFO] [stdout]    |
[INFO] [stdout] 22 | use std::sync::atomic::{AtomicU64, AtomicBool, Ordering as AtomicOrdering};
[INFO] [stdout]    |                                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicU64` and `Ordering`
[INFO] [stdout]   --> src/metrics.rs:11:25
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::sync::atomic::{AtomicU64, Ordering};
[INFO] [stdout]    |                         ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `likely` and `prefetch_l1`
[INFO] [stdout]   --> src/grid.rs:16:20
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::hints::{likely, unlikely, prefetch_l1};
[INFO] [stdout]    |                    ^^^^^^            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicBool`
[INFO] [stdout]   --> src/shadow.rs:21:47
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::sync::atomic::{AtomicU64, AtomicI64, AtomicBool, Ordering};
[INFO] [stdout]    |                                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::grid::GridConfig`
[INFO] [stdout]   --> src/tuner.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::grid::GridConfig;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicI64`
[INFO] [stdout]   --> src/tuner.rs:21:37
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::sync::atomic::{AtomicBool, AtomicI64, AtomicU64, Ordering};
[INFO] [stdout]    |                                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/tuner.rs:25:27
[INFO] [stdout]    |
[INFO] [stdout] 25 | use tracing::{info, warn, error};
[INFO] [stdout]    |                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Eip1559TransactionRequest`, `H160`, and `U256`
[INFO] [stdout]   --> src/oracle_scalp.rs:16:21
[INFO] [stdout]    |
[INFO] [stdout] 16 | use ethers::types::{Eip1559TransactionRequest, H160, U256};
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Level`
[INFO] [stdout]   --> src/main.rs:52:34
[INFO] [stdout]    |
[INFO] [stdout] 52 | use tracing::{error, info, warn, Level};
[INFO] [stdout]    |                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]  --> src/types.rs:8:26
[INFO] [stdout]   |
[INFO] [stdout] 8 | use serde::{Deserialize, Serialize};
[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: `PriceLevel`
[INFO] [stdout]  --> src/pricing.rs:6:49
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::types::{MarketId, OrderBookSnapshot, PriceLevel, Side, TradeSignal, SignalUrgency, OrderType};
[INFO] [stdout]   |                                                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicI64`
[INFO] [stdout]   --> src/pricing.rs:13:36
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::sync::atomic::{AtomicU64, AtomicI64, Ordering};
[INFO] [stdout]    |                                    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicBool`
[INFO] [stdout]   --> src/execution.rs:22:36
[INFO] [stdout]    |
[INFO] [stdout] 22 | use std::sync::atomic::{AtomicU64, AtomicBool, Ordering as AtomicOrdering};
[INFO] [stdout]    |                                    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicU64` and `Ordering`
[INFO] [stdout]   --> src/metrics.rs:11:25
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::sync::atomic::{AtomicU64, Ordering};
[INFO] [stdout]    |                         ^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `likely` and `prefetch_l1`
[INFO] [stdout]   --> src/grid.rs:16:20
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::hints::{likely, unlikely, prefetch_l1};
[INFO] [stdout]    |                    ^^^^^^            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicBool`
[INFO] [stdout]   --> src/shadow.rs:21:47
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::sync::atomic::{AtomicU64, AtomicI64, AtomicBool, Ordering};
[INFO] [stdout]    |                                               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::grid::GridConfig`
[INFO] [stdout]   --> src/tuner.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::grid::GridConfig;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicI64`
[INFO] [stdout]   --> src/tuner.rs:21:37
[INFO] [stdout]    |
[INFO] [stdout] 21 | use std::sync::atomic::{AtomicBool, AtomicI64, AtomicU64, Ordering};
[INFO] [stdout]    |                                     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/tuner.rs:25:27
[INFO] [stdout]    |
[INFO] [stdout] 25 | use tracing::{info, warn, error};
[INFO] [stdout]    |                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Eip1559TransactionRequest`, `H160`, and `U256`
[INFO] [stdout]   --> src/oracle_scalp.rs:16:21
[INFO] [stdout]    |
[INFO] [stdout] 16 | use ethers::types::{Eip1559TransactionRequest, H160, U256};
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Level`
[INFO] [stdout]   --> src/main.rs:52:34
[INFO] [stdout]    |
[INFO] [stdout] 52 | use tracing::{error, info, warn, Level};
[INFO] [stdout]    |                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::types::Side`
[INFO] [stdout]     --> src/main.rs:1111:9
[INFO] [stdout]      |
[INFO] [stdout] 1111 |     use crate::types::Side;
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_decimal::prelude::ToPrimitive`
[INFO] [stdout]   --> src/arb.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use rust_decimal::prelude::ToPrimitive;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `product_ids`
[INFO] [stdout]    --> src/websocket.rs:953:13
[INFO] [stdout]     |
[INFO] [stdout] 953 |         let product_ids: Vec<&str> = self.config.exchanges.symbols
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_product_ids`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `market_id_str`
[INFO] [stdout]     --> src/pricing.rs:1044:36
[INFO] [stdout]      |
[INFO] [stdout] 1044 |     async fn on_book_update(&self, market_id_str: String, snapshot: OrderBookSnapshot) {
[INFO] [stdout]      |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_market_id_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `force_maker`
[INFO] [stdout]     --> src/pricing.rs:1154:13
[INFO] [stdout]      |
[INFO] [stdout] 1154 |         let force_maker = self.thresholds.must_force_post_only(mid_price);
[INFO] [stdout]      |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_force_maker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rust_decimal::prelude::ToPrimitive`
[INFO] [stdout]   --> src/arb.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use rust_decimal::prelude::ToPrimitive;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filled_value_cents`
[INFO] [stdout]    --> src/risk.rs:531:13
[INFO] [stdout]     |
[INFO] [stdout] 531 |         let filled_value_cents = (report.filled_size * report.price * Decimal::new(100, 0))
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filled_value_cents`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_buy`
[INFO] [stdout]    --> src/risk.rs:673:70
[INFO] [stdout]     |
[INFO] [stdout] 673 |     pub fn record_shadow_trade(&self, price: Decimal, size: Decimal, is_buy: bool) {
[INFO] [stdout]     |                                                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_buy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trade_price`
[INFO] [stdout]    --> src/shadow.rs:391:31
[INFO] [stdout]     |
[INFO] [stdout] 391 |     pub fn should_fill(&self, trade_price: Decimal, trade_crosses: bool) -> bool {
[INFO] [stdout]     |                               ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trade_price`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `product_ids`
[INFO] [stdout]    --> src/websocket.rs:953:13
[INFO] [stdout]     |
[INFO] [stdout] 953 |         let product_ids: Vec<&str> = self.config.exchanges.symbols
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_product_ids`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/backtester.rs:177:13
[INFO] [stdout]     |
[INFO] [stdout] 177 |         let mut remaining = trade_volume;
[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: `trade_price`
[INFO] [stdout]    --> src/simulator.rs:231:31
[INFO] [stdout]     |
[INFO] [stdout] 231 |     pub fn should_fill(&self, trade_price: Decimal, trade_crosses: bool) -> bool {
[INFO] [stdout]     |                               ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trade_price`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `queue_exhausted`
[INFO] [stdout]    --> src/simulator.rs:763:17
[INFO] [stdout]     |
[INFO] [stdout] 763 |             let queue_exhausted = order.cumulative_volume > order.volume_ahead;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_queue_exhausted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `market_id_str`
[INFO] [stdout]     --> src/pricing.rs:1044:36
[INFO] [stdout]      |
[INFO] [stdout] 1044 |     async fn on_book_update(&self, market_id_str: String, snapshot: OrderBookSnapshot) {
[INFO] [stdout]      |                                    ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_market_id_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `force_maker`
[INFO] [stdout]     --> src/pricing.rs:1154:13
[INFO] [stdout]      |
[INFO] [stdout] 1154 |         let force_maker = self.thresholds.must_force_post_only(mid_price);
[INFO] [stdout]      |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_force_maker`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filled_value_cents`
[INFO] [stdout]    --> src/risk.rs:531:13
[INFO] [stdout]     |
[INFO] [stdout] 531 |         let filled_value_cents = (report.filled_size * report.price * Decimal::new(100, 0))
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filled_value_cents`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_buy`
[INFO] [stdout]    --> src/risk.rs:673:70
[INFO] [stdout]     |
[INFO] [stdout] 673 |     pub fn record_shadow_trade(&self, price: Decimal, size: Decimal, is_buy: bool) {
[INFO] [stdout]     |                                                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_buy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/grid.rs:640:13
[INFO] [stdout]     |
[INFO] [stdout] 640 |         let config = GridConfig::default();
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `trade_price`
[INFO] [stdout]    --> src/shadow.rs:391:31
[INFO] [stdout]     |
[INFO] [stdout] 391 |     pub fn should_fill(&self, trade_price: Decimal, trade_crosses: bool) -> bool {
[INFO] [stdout]     |                               ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trade_price`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/backtester.rs:177:13
[INFO] [stdout]     |
[INFO] [stdout] 177 |         let mut remaining = trade_volume;
[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: `trade_price`
[INFO] [stdout]    --> src/simulator.rs:231:31
[INFO] [stdout]     |
[INFO] [stdout] 231 |     pub fn should_fill(&self, trade_price: Decimal, trade_crosses: bool) -> bool {
[INFO] [stdout]     |                               ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_trade_price`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `queue_exhausted`
[INFO] [stdout]    --> src/simulator.rs:763:17
[INFO] [stdout]     |
[INFO] [stdout] 763 |             let queue_exhausted = order.cumulative_volume > order.volume_ahead;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_queue_exhausted`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maker_manager`
[INFO] [stdout]    --> src/main.rs:734:5
[INFO] [stdout]     |
[INFO] [stdout] 734 |     maker_manager: Arc<MakerManager>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maker_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `executor`
[INFO] [stdout]    --> src/main.rs:906:5
[INFO] [stdout]     |
[INFO] [stdout] 906 |     executor: Arc<OrderExecutor>,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_executor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/main.rs:969:5
[INFO] [stdout]     |
[INFO] [stdout] 969 |     config: Arc<Config>,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `warm_order_cache` is never used
[INFO] [stdout]     --> src/main.rs:1051:10
[INFO] [stdout]      |
[INFO] [stdout] 1051 | async fn warm_order_cache(
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_shadow_mode`, `shadow_initial_balance`, `max_order_size`, and `grid` are never read
[INFO] [stdout]   --> src/config.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct TradingConfig {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub is_shadow_mode: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub shadow_initial_balance: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub max_order_size: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub grid: GridConfig,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TradingConfig` 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 `presign_cache_range_pct` is never read
[INFO] [stdout]    --> src/config.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout]  93 | pub struct FeeCurve2026Config {
[INFO] [stdout]     |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub presign_cache_range_pct: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FeeCurve2026Config` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/config.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub struct GridConfig {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 147 |     /// Number of levels per side (buy/sell)
[INFO] [stdout] 148 |     pub levels_per_side: u8,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 149 |     /// Size per level in USDC
[INFO] [stdout] 150 |     pub size_per_level: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 151 |     /// Base spacing between levels (0.01 = 1 cent)
[INFO] [stdout] 152 |     pub base_spacing: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 153 |     /// Volatility multiplier for dynamic spacing
[INFO] [stdout] 154 |     pub volatility_multiplier: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 155 |     /// Maximum total exposure per grid side
[INFO] [stdout] 156 |     pub max_grid_exposure: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 157 |     /// Minimum aggregate profit BPS for grid
[INFO] [stdout] 158 |     pub min_aggregate_profit_bps: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 159 |     /// Auto-rebalance on fill (place counter-order)
[INFO] [stdout] 160 |     pub auto_rebalance: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 161 |     /// Use batch execution (create_orders endpoint)
[INFO] [stdout] 162 |     pub batch_execution: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GridConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `gap_threshold_pct`, `volatility_spike_threshold`, `volatility_buffer_multiplier`, and `volume_spike_mult` are never read
[INFO] [stdout]    --> src/config.rs:194:9
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub struct RiskConfig {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub gap_threshold_pct: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub volatility_spike_threshold: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub volatility_buffer_multiplier: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub volume_spike_mult: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RiskConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `connection_timeout_ms` and `max_reconnect_attempts` are never read
[INFO] [stdout]    --> src/config.rs:227:9
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub struct NetworkConfig {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 227 |     pub connection_timeout_ms: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub max_reconnect_attempts: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NetworkConfig` 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 `total_trade_cost_bps` is never used
[INFO] [stdout]    --> src/config.rs:342:12
[INFO] [stdout]     |
[INFO] [stdout] 234 | impl Config {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 342 |     pub fn total_trade_cost_bps(&self) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `maker_mode` and `taker_mode` are never read
[INFO] [stdout]    --> src/config.rs:363:9
[INFO] [stdout]     |
[INFO] [stdout] 361 | pub struct RuntimeParams {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 362 |     pub trading_enabled: std::sync::atomic::AtomicBool,
[INFO] [stdout] 363 |     pub maker_mode: std::sync::atomic::AtomicBool,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 364 |     pub taker_mode: std::sync::atomic::AtomicBool,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuntimeParams` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `GoodTilCancelled` and `FillOrKill` are never constructed
[INFO] [stdout]   --> src/types.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum OrderType {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 35 |     GoodTilCancelled = 2,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |     FillOrKill = 3,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OrderType` 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 `GTD` and `FOK` are never constructed
[INFO] [stdout]   --> src/types.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub enum TimeInForce {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 44 |     GTC = 0, // Good til cancelled
[INFO] [stdout] 45 |     GTD = 1, // Good til date
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 46 |     FOK = 2, // Fill or kill
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TimeInForce` 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 `spread_bps` is never used
[INFO] [stdout]    --> src/types.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout]  99 | impl OrderBookSnapshot {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn spread_bps(&self) -> Option<u32> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_hex` is never used
[INFO] [stdout]    --> src/types.rs:178:12
[INFO] [stdout]     |
[INFO] [stdout] 171 | impl MarketId {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn from_hex(hex: &str, token_id: u64) -> Option<Self> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Low` and `High` are never constructed
[INFO] [stdout]    --> src/types.rs:212:5
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub enum SignalUrgency {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] 212 |     Low = 0,      // Can wait, use maker order
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 213 |     Medium = 1,   // Should act soon
[INFO] [stdout] 214 |     High = 2,     // Act immediately, use taker if needed
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SignalUrgency` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `time_in_force` and `created_at_ns` are never read
[INFO] [stdout]    --> src/types.rs:228:9
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub struct PreparedOrder {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub time_in_force: TimeInForce,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub created_at_ns: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PreparedOrder` 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 `counter` is never read
[INFO] [stdout]    --> src/types.rs:287:5
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub struct NonceGenerator {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] 287 |     counter: AtomicU64,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `next` is never used
[INFO] [stdout]    --> src/types.rs:302:12
[INFO] [stdout]     |
[INFO] [stdout] 290 | impl NonceGenerator {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 302 |     pub fn next(&self) -> u64 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ClobMessage` is never used
[INFO] [stdout]    --> src/types.rs:317:10
[INFO] [stdout]     |
[INFO] [stdout] 317 | pub enum ClobMessage<'a> {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timestamp` and `hash` are never read
[INFO] [stdout]    --> src/types.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 348 | pub struct PolymarketMessage<'a> {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 364 |     pub timestamp: Option<&'a str>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 370 |     pub hash: Option<&'a str>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PolymarketMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BookUpdate` is never constructed
[INFO] [stdout]    --> src/types.rs:376:12
[INFO] [stdout]     |
[INFO] [stdout] 376 | pub struct BookUpdate<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TradeUpdate` is never constructed
[INFO] [stdout]    --> src/types.rs:387:12
[INFO] [stdout]     |
[INFO] [stdout] 387 | pub struct TradeUpdate<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PriceChangeUpdate` is never constructed
[INFO] [stdout]    --> src/types.rs:398:12
[INFO] [stdout]     |
[INFO] [stdout] 398 | pub struct PriceChangeUpdate<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OrderUpdate` is never constructed
[INFO] [stdout]    --> src/types.rs:407:12
[INFO] [stdout]     |
[INFO] [stdout] 407 | pub struct OrderUpdate<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `bid_qty` and `ask_qty` are never read
[INFO] [stdout]    --> src/types.rs:423:9
[INFO] [stdout]     |
[INFO] [stdout] 417 | pub struct BinanceTickerMessage<'a> {
[INFO] [stdout]     |            -------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 423 |     pub bid_qty: &'a str,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 427 |     pub ask_qty: &'a str,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BinanceTickerMessage` 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 `price` is never read
[INFO] [stdout]    --> src/types.rs:435:9
[INFO] [stdout]     |
[INFO] [stdout] 432 | pub struct CoinbaseTickerMessage<'a> {
[INFO] [stdout]     |            --------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 435 |     pub price: &'a str,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CoinbaseTickerMessage` 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 `original_size` and `submitted_at_ns` are never read
[INFO] [stdout]    --> src/types.rs:447:9
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub struct ExecutionReport {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 447 |     pub original_size: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 450 |     pub submitted_at_ns: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExecutionReport` 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 `Pending` is never constructed
[INFO] [stdout]    --> src/types.rs:457:5
[INFO] [stdout]     |
[INFO] [stdout] 456 | pub enum OrderStatus {
[INFO] [stdout]     |          ----------- variant in this enum
[INFO] [stdout] 457 |     Pending = 0,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OrderStatus` 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 `get_info` and `is_empty` are never used
[INFO] [stdout]    --> src/types.rs:538:12
[INFO] [stdout]     |
[INFO] [stdout] 490 | impl TokenIdRegistry {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 538 |     pub fn get_info(&self, hash: u64) -> Option<TokenMarketInfo> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 547 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `question` and `volume` are never read
[INFO] [stdout]   --> src/websocket.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | struct GammaMarket {
[INFO] [stdout]    |        ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 37 |     question: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 38 |     #[serde(rename = "volumeNum", default)]
[INFO] [stdout] 39 |     volume: Option<f64>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GammaMarket` 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 `timestamp` and `hash` are never read
[INFO] [stdout]   --> src/websocket.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct PolymarketBookSnapshot {
[INFO] [stdout]    |        ---------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 50 |     timestamp: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     hash: Option<String>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PolymarketBookSnapshot` 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 `source` and `message` are never read
[INFO] [stdout]    --> src/websocket.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 131 |     Error {
[INFO] [stdout]     |     ----- fields in this variant
[INFO] [stdout] 132 |         source: ConnectionSource,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 133 |         message: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WsEvent` 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 `asset_id`, `side`, `price`, `original_size`, and `timestamp_ns` are never read
[INFO] [stdout]    --> src/websocket.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |     OrderUpdate {
[INFO] [stdout]     |     ----------- fields in this variant
[INFO] [stdout] 137 |         order_id: String,
[INFO] [stdout] 138 |         asset_id: String,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 139 |         status: String,
[INFO] [stdout] 140 |         side: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 141 |         price: String,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 142 |         original_size: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 143 |         size_matched: String,
[INFO] [stdout] 144 |         timestamp_ns: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WsEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `parse_book_update` is never used
[INFO] [stdout]    --> src/websocket.rs:491:8
[INFO] [stdout]     |
[INFO] [stdout] 168 | impl PolymarketWs {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 491 |     fn parse_book_update(&self, update: &crate::types::BookUpdate, timestamp_ns: u64) -> OrderBookSnapshot {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `market` and `outcome` are never read
[INFO] [stdout]    --> src/websocket.rs:568:5
[INFO] [stdout]     |
[INFO] [stdout] 558 | struct UserChannelMessage<'a> {
[INFO] [stdout]     |        ------------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 568 |     market: Option<&'a str>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 582 |     outcome: Option<&'a str>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UserChannelMessage` 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 `contract_address`, `neg_risk_contract_address`, `nonce_generator`, and `max_cache_size` are never read
[INFO] [stdout]   --> src/signing.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct OrderSigner {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 45 |     contract_address: Address,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// NegRisk exchange address
[INFO] [stdout] 47 |     neg_risk_contract_address: Address,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     nonce_generator: NonceGenerator,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     max_cache_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_raw` is never used
[INFO] [stdout]   --> src/signing.rs:89:18
[INFO] [stdout]    |
[INFO] [stdout] 75 | impl SignatureCacheKey {
[INFO] [stdout]    | ---------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub const fn from_raw(token_id: u64, side: u8, price_bps: u16, size_cents: u32) -> Self {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `created_at_ns` is never read
[INFO] [stdout]   --> src/signing.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub struct CachedSignature {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 97 |     pub order: PreparedOrder,
[INFO] [stdout] 98 |     pub created_at_ns: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CachedSignature` 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 `warm_signature_cache`, `evict_expired`, `prepare_order`, `warm_cache`, `get_cached_order`, and `clear_expired` are never used
[INFO] [stdout]    --> src/signing.rs:168:18
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl OrderSigner {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub async fn warm_signature_cache(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     fn evict_expired(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub async fn prepare_order(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 562 |     pub async fn warm_cache(
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     pub fn get_cached_order(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 589 |     pub fn clear_expired(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BatchSigner` is never constructed
[INFO] [stdout]    --> src/signing.rs:595:12
[INFO] [stdout]     |
[INFO] [stdout] 595 | pub struct BatchSigner {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `prepare_batch` are never used
[INFO] [stdout]    --> src/signing.rs:600:12
[INFO] [stdout]     |
[INFO] [stdout] 599 | impl BatchSigner {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 600 |     pub fn new(signer: Arc<OrderSigner>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 605 |     pub async fn prepare_batch(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `min_taker_spread_bps` is never read
[INFO] [stdout]   --> src/pricing.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct FeeThresholds {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub min_taker_spread_bps: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FeeThresholds` 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 `is_taker_profitable` is never used
[INFO] [stdout]   --> src/pricing.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl FeeThresholds {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn is_taker_profitable(&self, spread_bps: u32) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `current_volatility`, `baseline_volatility`, `volatility_ratio`, and `reset` are never used
[INFO] [stdout]    --> src/pricing.rs:226:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | impl VolatilityTracker {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn current_volatility(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn baseline_volatility(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn volatility_ratio(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VOLUME_MA_WINDOW_SECS` is never used
[INFO] [stdout]    --> src/pricing.rs:267:11
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub const VOLUME_MA_WINDOW_SECS: usize = 300;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/pricing.rs:327:12
[INFO] [stdout]     |
[INFO] [stdout] 294 | impl VolumeTracker {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn record_trade_decimal(&mut self, volume: Decimal) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 399 |     pub fn get_current_1s_volume(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub fn is_circuit_breaker_triggered(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 417 |     pub fn get_velocity_ratio(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 427 |     pub fn reset_circuit_breaker(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 435 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn stats(&self) -> VolumeStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VolumeStats` is never constructed
[INFO] [stdout]    --> src/pricing.rs:481:12
[INFO] [stdout]     |
[INFO] [stdout] 481 | pub struct VolumeStats {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `spread_bps` and `volume_5m` are never read
[INFO] [stdout]    --> src/pricing.rs:570:9
[INFO] [stdout]     |
[INFO] [stdout] 568 | pub struct MarketScore {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 569 |     /// Spread in basis points
[INFO] [stdout] 570 |     pub spread_bps: u32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 571 |     /// 5-minute trade volume (USDC)
[INFO] [stdout] 572 |     pub volume_5m: f64,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MarketScore` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `market_id` and `external_ref_price` are never read
[INFO] [stdout]    --> src/pricing.rs:608:9
[INFO] [stdout]     |
[INFO] [stdout] 607 | pub struct MarketState {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 608 |     pub market_id: MarketId,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 613 |     pub external_ref_price: Option<Decimal>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MarketState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_stale` is never used
[INFO] [stdout]    --> src/pricing.rs:675:12
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl MarketState {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 675 |     pub fn is_stale(&self, threshold_ns: u64) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `best_price` is never used
[INFO] [stdout]    --> src/pricing.rs:695:12
[INFO] [stdout]     |
[INFO] [stdout] 692 | impl ExchangePrices {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn best_price(&self, symbol: &str) -> Option<(Decimal, Decimal)> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]    --> src/pricing.rs:784:12
[INFO] [stdout]     |
[INFO] [stdout] 734 | impl InventoryTracker {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 784 |     pub fn reset(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/pricing.rs:808:9
[INFO] [stdout]     |
[INFO] [stdout] 807 | pub struct LiveOrder {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 808 |     pub id: u64,
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LiveOrder` 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 `remove_order` and `reset` are never used
[INFO] [stdout]    --> src/pricing.rs:882:12
[INFO] [stdout]     |
[INFO] [stdout] 818 | impl OrderLifecycleManager {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 882 |     pub fn remove_order(&self, id: u64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 941 |     pub fn reset(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_crypto_volatile` and `validate_signal` are never used
[INFO] [stdout]     --> src/pricing.rs:1111:12
[INFO] [stdout]      |
[INFO] [stdout]  973 | impl PricingEngine {
[INFO] [stdout]      | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1111 |     pub fn is_crypto_volatile(&self) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1287 |     pub fn validate_signal(&self, signal: &TradeSignal) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_trip_profit` is never used
[INFO] [stdout]     --> src/pricing.rs:1330:12
[INFO] [stdout]      |
[INFO] [stdout] 1330 |     pub fn round_trip_profit(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_profitable_spread` is never used
[INFO] [stdout]     --> src/pricing.rs:1343:12
[INFO] [stdout]      |
[INFO] [stdout] 1343 |     pub fn min_profitable_spread(fee_bps: u32, min_profit_bps: u32) -> u32 {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `price_to_prob` is never used
[INFO] [stdout]     --> src/pricing.rs:1350:12
[INFO] [stdout]      |
[INFO] [stdout] 1350 |     pub fn price_to_prob(price: Decimal) -> Decimal {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `KillSwitchState` is never used
[INFO] [stdout]   --> src/risk.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum KillSwitchState {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `unrealized_pnl` is never read
[INFO] [stdout]   --> src/risk.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct Position {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub unrealized_pnl: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Position` 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 `value_at` and `update_unrealized` are never used
[INFO] [stdout]   --> src/risk.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl Position {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn value_at(&self, price: Decimal) -> Decimal {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn update_unrealized(&mut self, current_price: Decimal) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `RejectedStaleData` and `RejectedGapProtection` are never constructed
[INFO] [stdout]    --> src/risk.rs:99:5
[INFO] [stdout]     |
[INFO] [stdout]  93 | pub enum RiskCheckResult {
[INFO] [stdout]     |          --------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  99 |     RejectedStaleData,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 100 |     RejectedGapProtection,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RiskCheckResult` 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 `GapProtection` is never constructed
[INFO] [stdout]    --> src/risk.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct GapProtection {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `check_price_update`, `trigger`, `is_triggered`, `reset`, and `stats` are never used
[INFO] [stdout]    --> src/risk.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 121 | impl GapProtection {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 122 |     pub fn new(gap_threshold_pct: Decimal) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn check_price_update(&self, token_id: u64, new_price: Decimal) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn trigger(&self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn is_triggered(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn reset(&self) -> bool {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn stats(&self) -> GapProtectionStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GapProtectionStats` is never constructed
[INFO] [stdout]    --> src/risk.rs:210:12
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub struct GapProtectionStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VolumeCircuitBreaker` is never constructed
[INFO] [stdout]    --> src/risk.rs:222:12
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub struct VolumeCircuitBreaker {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/risk.rs:244:12
[INFO] [stdout]     |
[INFO] [stdout] 243 | impl VolumeCircuitBreaker {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout] 244 |     pub fn new(spike_multiplier: f64) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub fn record_trade_volume(&self, volume_usdc: Decimal) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn is_triggered(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub fn reset(&self) -> bool {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |     pub fn stats(&self) -> VolumeCircuitBreakerStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |     fn current_second() -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 365 |     fn now_ns() -> u64 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VolumeCircuitBreakerStats` is never constructed
[INFO] [stdout]    --> src/risk.rs:375:12
[INFO] [stdout]     |
[INFO] [stdout] 375 | pub struct VolumeCircuitBreakerStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset_kill_switch`, `reset_daily`, `record_shadow_trade`, and `mark_to_market` are never used
[INFO] [stdout]    --> src/risk.rs:641:12
[INFO] [stdout]     |
[INFO] [stdout] 384 | impl RiskManager {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 641 |     pub fn reset_kill_switch(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 659 |     pub fn reset_daily(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 673 |     pub fn record_shadow_trade(&self, price: Decimal, size: Decimal, is_buy: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 700 |     pub fn mark_to_market(&self, token_id: u64, current_price: Decimal) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `expected_profit_bps` is never read
[INFO] [stdout]    --> src/execution.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 101 | struct PendingOrder {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 104 |     expected_profit_bps: i32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PendingOrder` 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 `committed_capital_usdc`, `cancel_all`, and `get_metrics` are never used
[INFO] [stdout]     --> src/execution.rs:777:12
[INFO] [stdout]      |
[INFO] [stdout]  111 | impl OrderExecutor {
[INFO] [stdout]      | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  777 |     pub fn committed_capital_usdc(&self) -> f64 {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  830 |     pub async fn cancel_all(&self) -> Result<u32, ExecutionError> {
[INFO] [stdout]      |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1534 |     pub fn get_metrics(&self) -> ExecutionMetrics {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecutionMetrics` is never constructed
[INFO] [stdout]     --> src/execution.rs:1584:12
[INFO] [stdout]      |
[INFO] [stdout] 1584 | pub struct ExecutionMetrics {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `executor` and `active_orders` are never read
[INFO] [stdout]     --> src/execution.rs:1594:5
[INFO] [stdout]      |
[INFO] [stdout] 1593 | pub struct MakerManager {
[INFO] [stdout]      |            ------------ fields in this struct
[INFO] [stdout] 1594 |     executor: Arc<OrderExecutor>,
[INFO] [stdout]      |     ^^^^^^^^
[INFO] [stdout] 1595 |     /// Active maker orders per market
[INFO] [stdout] 1596 |     active_orders: Mutex<FxHashMap<u64, Vec<String>>>,
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `place_maker_orders`, `track_order`, and `cancel_market_orders` are never used
[INFO] [stdout]     --> src/execution.rs:1608:18
[INFO] [stdout]      |
[INFO] [stdout] 1599 | impl MakerManager {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1608 |     pub async fn place_maker_orders(
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1661 |     fn track_order(&self, token_id: u64, order_id: String) {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1667 |     pub async fn cancel_market_orders(&self, token_id: u64) -> u32 {
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_shadow_metrics` is never used
[INFO] [stdout]    --> src/metrics.rs:889:8
[INFO] [stdout]     |
[INFO] [stdout] 889 | pub fn update_shadow_metrics(balance: f64, pnl: f64, _trades: u64, win_rate: f64, maker_ratio: f64, net_fees: f64, active_orders: i...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_inventory_health` is never used
[INFO] [stdout]    --> src/metrics.rs:899:8
[INFO] [stdout]     |
[INFO] [stdout] 899 | pub fn update_inventory_health(token_id: u64, health_status: &str, inventory: f64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_tuner_metrics` is never used
[INFO] [stdout]    --> src/metrics.rs:906:8
[INFO] [stdout]     |
[INFO] [stdout] 906 | pub fn update_tuner_metrics(best_spacing: f64, best_pnl: f64, cycles: u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_consecutive_profit_hours` is never used
[INFO] [stdout]    --> src/metrics.rs:913:8
[INFO] [stdout]     |
[INFO] [stdout] 913 | pub fn update_consecutive_profit_hours(hours: u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_ask_skew_multiplier` is never used
[INFO] [stdout]    --> src/metrics.rs:918:8
[INFO] [stdout]     |
[INFO] [stdout] 918 | pub fn update_ask_skew_multiplier(multiplier: f64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LatencyTracker` is never constructed
[INFO] [stdout]    --> src/metrics.rs:924:12
[INFO] [stdout]     |
[INFO] [stdout] 924 | pub struct LatencyTracker {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `start`, `finish`, and `elapsed_us` are never used
[INFO] [stdout]    --> src/metrics.rs:934:12
[INFO] [stdout]     |
[INFO] [stdout] 931 | impl LatencyTracker {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 934 |     pub fn start(exchange: &'static str, side: &'static str, order_type: &'static str) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 945 |     pub fn finish(self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 954 |     pub fn elapsed_us(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start` and `phase` are never read
[INFO] [stdout]    --> src/metrics.rs:962:5
[INFO] [stdout]     |
[INFO] [stdout] 961 | pub struct TscLatencyTracker {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 962 |     start: QuantaInstant,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 963 |     phase: &'static str,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `start`, `finish`, `finish_raw`, and `elapsed_ns` are never used
[INFO] [stdout]     --> src/metrics.rs:969:12
[INFO] [stdout]      |
[INFO] [stdout]  966 | impl TscLatencyTracker {
[INFO] [stdout]      | ---------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  969 |     pub fn start(phase: &'static str) -> Self {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  984 |     pub fn finish(self) {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  993 |     pub fn finish_raw(start: QuantaInstant, phase: &'static str) {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1002 |     pub fn elapsed_ns(&self) -> u64 {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `record_trade` is never used
[INFO] [stdout]     --> src/metrics.rs:1041:8
[INFO] [stdout]      |
[INFO] [stdout] 1041 | pub fn record_trade(
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `record_arb_opportunity` is never used
[INFO] [stdout]     --> src/metrics.rs:1100:8
[INFO] [stdout]      |
[INFO] [stdout] 1100 | pub fn record_arb_opportunity(asset: &str, source: &str, executed: bool) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prefetch_l2` is never used
[INFO] [stdout]   --> src/hints.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn prefetch_l2<T>(ptr: *const T) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spin_hint` is never used
[INFO] [stdout]   --> src/hints.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn spin_hint() {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `memory_fence` is never used
[INFO] [stdout]   --> src/hints.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn memory_fence() {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compiler_fence` is never used
[INFO] [stdout]   --> src/hints.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn compiler_fence() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdtsc` is never used
[INFO] [stdout]   --> src/hints.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn rdtsc() -> u64 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdtscp` is never used
[INFO] [stdout]    --> src/hints.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn rdtscp() -> (u64, u32) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CACHE_LINE_SIZE` is never used
[INFO] [stdout]    --> src/hints.rs:151:11
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub const CACHE_LINE_SIZE: usize = 64;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CacheLinePadded` is never constructed
[INFO] [stdout]    --> src/hints.rs:155:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub struct CacheLinePadded<T>(pub T);
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get`, and `get_mut` are never used
[INFO] [stdout]    --> src/hints.rs:159:18
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl<T> CacheLinePadded<T> {
[INFO] [stdout]     | -------------------------- associated items in this implementation
[INFO] [stdout] 158 |     #[inline(always)]
[INFO] [stdout] 159 |     pub const fn new(val: T) -> Self {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn get(&self) -> &T {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn get_mut(&mut self) -> &mut T {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `keep_in_register` is never used
[INFO] [stdout]    --> src/hints.rs:192:8
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub fn keep_in_register<T>(val: T) -> T {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assume` is never used
[INFO] [stdout]    --> src/hints.rs:201:15
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub unsafe fn assume(cond: bool) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unreachable_unchecked` is never used
[INFO] [stdout]    --> src/hints.rs:211:15
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub unsafe fn unreachable_unchecked() -> ! {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmov_select_u64` is never used
[INFO] [stdout]   --> src/asm_ops.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn cmov_select_u64(condition: bool, a: u64, b: u64) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmov_select_i64` is never used
[INFO] [stdout]   --> src/asm_ops.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn cmov_select_i64(condition: bool, a: i64, b: i64) -> i64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmov_max_u64` is never used
[INFO] [stdout]   --> src/asm_ops.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn cmov_max_u64(a: u64, b: u64) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmov_min_u64` is never used
[INFO] [stdout]   --> src/asm_ops.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn cmov_min_u64(a: u64, b: u64) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmov_clamp_u64` is never used
[INFO] [stdout]   --> src/asm_ops.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn cmov_clamp_u64(value: u64, min: u64, max: u64) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `store_nt_u64` is never used
[INFO] [stdout]    --> src/asm_ops.rs:105:15
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub unsafe fn store_nt_u64(ptr: *mut u64, value: u64) {
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sfence` is never used
[INFO] [stdout]    --> src/asm_ops.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn sfence() {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pause` is never used
[INFO] [stdout]    --> src/asm_ops.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn pause() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spin_until_eq` is never used
[INFO] [stdout]    --> src/asm_ops.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub fn spin_until_eq(atomic: &std::sync::atomic::AtomicU64, expected: u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Empty`, `Pending`, `Active`, `PartiallyFilled`, `Filled`, and `Cancelled` are never constructed
[INFO] [stdout]   --> src/grid.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum LevelState {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 32 |     Empty = 0,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 33 |     Pending = 1,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 34 |     Active = 2,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 35 |     PartiallyFilled = 3,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |     Filled = 4,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 37 |     Cancelled = 5,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LevelState` 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: associated items `empty`, `new`, `remaining`, and `is_active` are never used
[INFO] [stdout]   --> src/grid.rs:56:18
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl GridLevel {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 55 |     #[inline(always)]
[INFO] [stdout] 56 |     pub const fn empty() -> Self {
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn new(price: Decimal, size: Decimal, side: Side, index: u8) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn remaining(&self) -> Decimal {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn is_active(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `empty`, `total_size`, and `total_exposure` are never used
[INFO] [stdout]    --> src/grid.rs:108:18
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl Grid {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 107 |     #[inline(always)]
[INFO] [stdout] 108 |     pub const fn empty(side: Side) -> Self {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn total_size(&self) -> Decimal {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn total_exposure(&self) -> Decimal {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/grid.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub struct GridConfig {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 147 |     /// Number of levels per side
[INFO] [stdout] 148 |     pub levels_per_side: u8,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 149 |     /// Size per level in USDC
[INFO] [stdout] 150 |     pub size_per_level: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 151 |     /// Base spacing between levels (e.g., 0.01 = 1 cent)
[INFO] [stdout] 152 |     pub base_spacing: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 153 |     /// Dynamic spacing multiplier based on volatility
[INFO] [stdout] 154 |     pub volatility_multiplier: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 155 |     /// Maximum total exposure per grid
[INFO] [stdout] 156 |     pub max_exposure: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 157 |     /// Minimum profit BPS for the aggregate grid
[INFO] [stdout] 158 |     pub min_aggregate_profit_bps: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 159 |     /// Auto-rebalance on fill
[INFO] [stdout] 160 |     pub auto_rebalance: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 161 |     /// Use batch execution
[INFO] [stdout] 162 |     pub batch_execution: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub inventory_skew_factor: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 166 |     /// Maximum inventory skew in price (e.g., 0.02 = 2 cents max shift)
[INFO] [stdout] 167 |     pub max_inventory_skew: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GridConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/grid.rs:189:5
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub struct GridEngine {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 189 |     config: Arc<Config>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 190 |     grid_config: GridConfig,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 191 |     signer: Arc<OrderSigner>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     buy_grid: RwLock<Grid>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 195 |     /// Active sell grid  
[INFO] [stdout] 196 |     sell_grid: RwLock<Grid>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     order_id_counter: AtomicU64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     enabled: AtomicBool,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     grids_created: AtomicU64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 206 |     levels_filled: AtomicU64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 207 |     rebalances: AtomicU64,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/grid.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout] 210 | impl GridEngine {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 211 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn generate_grid(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 306 |     fn calculate_inventory_skew(&self, inventory: i32, side: Side) -> Decimal {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |     pub fn generate_dual_grid(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 350 |     pub async fn presign_grid(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 391 |     pub fn is_grid_profitable_2026(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 429 |     pub fn on_level_filled(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 474 |     fn calculate_dynamic_spacing(&self, prob: Decimal) -> Decimal {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 496 |     fn estimate_level_profit_bps(&self, level_index: usize, _side: Side) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 505 |     fn get_side_exposure(&self, side: Side) -> Decimal {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 514 |     fn now_ns() -> u64 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 521 |     fn next_order_id(&self) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 526 |     pub fn stats(&self) -> GridStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 537 |     pub fn set_enabled(&self, enabled: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GridStats` is never constructed
[INFO] [stdout]    --> src/grid.rs:544:12
[INFO] [stdout]     |
[INFO] [stdout] 544 | pub struct GridStats {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BatchOrderRequest` is never constructed
[INFO] [stdout]    --> src/grid.rs:558:12
[INFO] [stdout]     |
[INFO] [stdout] 558 | pub struct BatchOrderRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_order`, `from_grid`, and `to_json` are never used
[INFO] [stdout]    --> src/grid.rs:564:12
[INFO] [stdout]     |
[INFO] [stdout] 563 | impl BatchOrderRequest {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 564 |     pub fn new(market_id: MarketId) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 571 |     pub fn add_order(&mut self, order: PreparedOrder) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 575 |     pub fn from_grid(orders: Vec<PreparedOrder>, market_id: MarketId) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn to_json(&self) -> serde_json::Value {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]    --> src/shadow.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout] 174 | impl PositionTracker {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn reset(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Pending` is never constructed
[INFO] [stdout]    --> src/shadow.rs:218:5
[INFO] [stdout]     |
[INFO] [stdout] 217 | pub enum VirtualOrderState {
[INFO] [stdout]     |          ----------------- variant in this enum
[INFO] [stdout] 218 |     Pending = 0,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `VirtualOrderState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `order_type` and `expected_profit_bps` are never read
[INFO] [stdout]    --> src/shadow.rs:234:9
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub struct VirtualOrder {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub order_type: OrderType,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub expected_profit_bps: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `VirtualOrder` 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: associated functions `new_with_lob`, `calculate_volume_ahead`, and `from_prepared` are never used
[INFO] [stdout]    --> src/shadow.rs:284:12
[INFO] [stdout]     |
[INFO] [stdout] 252 | impl VirtualOrder {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 284 |     pub fn new_with_lob(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub fn calculate_volume_ahead(side: Side, price: Decimal, lob: Option<&OrderBookSnapshot>) -> Decimal {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 359 |     pub fn from_prepared(id: u64, order: &PreparedOrder, is_maker: bool, expected_profit_bps: i32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `market_id` and `timestamp_ns` are never read
[INFO] [stdout]    --> src/shadow.rs:423:9
[INFO] [stdout]     |
[INFO] [stdout] 421 | pub struct VirtualFill {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 422 |     pub order_id: u64,
[INFO] [stdout] 423 |     pub market_id: MarketId,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 430 |     pub timestamp_ns: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `VirtualFill` 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 `get_orders_at_price`, `cancel_order`, `cancel_order_with_latency`, `active_orders`, and `order_count` are never used
[INFO] [stdout]    --> src/shadow.rs:465:12
[INFO] [stdout]     |
[INFO] [stdout] 441 | impl VirtualOrderBook {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 465 |     pub fn get_orders_at_price(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 503 |     pub fn cancel_order(&self, order_id: u64) -> Option<VirtualOrder> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 513 |     pub fn cancel_order_with_latency(&self, order_id: u64) -> Result<Option<VirtualOrder>, &'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 529 |     pub fn active_orders(&self) -> Vec<VirtualOrder> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 538 |     pub fn order_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total_pnl` is never read
[INFO] [stdout]    --> src/shadow.rs:684:9
[INFO] [stdout]     |
[INFO] [stdout] 681 | pub struct ShadowStats {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 684 |     pub total_pnl: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ShadowStats` 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 `grid_engine` is never read
[INFO] [stdout]    --> src/shadow.rs:729:5
[INFO] [stdout]     |
[INFO] [stdout] 700 | pub struct ShadowEngine {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 729 |     grid_engine: Option<Arc<GridEngine>>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/shadow.rs:792:12
[INFO] [stdout]      |
[INFO] [stdout]  755 | impl ShadowEngine {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  792 |     pub fn set_grid_engine(&mut self, grid_engine: Arc<GridEngine>) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  843 |     pub fn track_prepared_order(&self, order: &PreparedOrder, is_maker: bool, expected_profit_bps: i32) -> Option<u64> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  868 |     pub fn track_grid_orders(&self, signals: &[TradeSignal], is_maker: bool) -> Vec<u64> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  876 |     pub fn update_daily_volume(&self, volume_usd: Decimal) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  881 |     pub fn update_mid_price(&self, market_id: &MarketId, mid_price: Decimal) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  888 |     pub fn cancel_virtual_order(&self, order_id: u64) -> Result<Option<VirtualOrder>, &'static str> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1159 |     pub fn get_fill_history(&self) -> Vec<VirtualFill> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1170 |     pub fn cancel_all_orders(&self) -> (usize, usize) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1187 |     pub fn reset(&self) {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1205 |     pub fn set_enabled(&self, enabled: bool) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1210 |     pub fn is_enabled(&self) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ShadowMetrics` is never constructed
[INFO] [stdout]     --> src/shadow.rs:1232:12
[INFO] [stdout]      |
[INFO] [stdout] 1232 | pub struct ShadowMetrics {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_SPACING_VALUES` is never used
[INFO] [stdout]   --> src/tuner.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub const DEFAULT_SPACING_VALUES: [f64; 3] = [0.005, 0.01, 0.02];
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OPTIMIZATION_INTERVAL_SECS` is never used
[INFO] [stdout]   --> src/tuner.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const OPTIMIZATION_INTERVAL_SECS: u64 = 3600;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROFITABILITY_CHECK_SECS` is never used
[INFO] [stdout]   --> src/tuner.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub const PROFITABILITY_CHECK_SECS: u64 = 3600;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CONSECUTIVE_PROFIT_HOURS` is never used
[INFO] [stdout]   --> src/tuner.rs:37:11
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub const CONSECUTIVE_PROFIT_HOURS: u64 = 4;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INVENTORY_DELTA_THRESHOLD` is never used
[INFO] [stdout]   --> src/tuner.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub const INVENTORY_DELTA_THRESHOLD: f64 = 0.20;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SKEW_INCREASE_FACTOR` is never used
[INFO] [stdout]   --> src/tuner.rs:43:11
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub const SKEW_INCREASE_FACTOR: f64 = 1.5;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VirtualEnvironment` is never constructed
[INFO] [stdout]   --> src/tuner.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct VirtualEnvironment {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_pnl`, `get_stats`, and `reset` are never used
[INFO] [stdout]   --> src/tuner.rs:55:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl VirtualEnvironment {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout] 55 |     pub fn new(id: u32, config: Arc<Config>, grid_spacing: Decimal) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn get_pnl(&self) -> Decimal {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn get_stats(&self) -> ShadowStats {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OptimizationResult` is never constructed
[INFO] [stdout]   --> src/tuner.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct OptimizationResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `InventoryHealth` is never used
[INFO] [stdout]   --> src/tuner.rs:99:10
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub enum InventoryHealth {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]    --> src/tuner.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl InventoryHealth {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 107 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProfitabilityTracker` is never constructed
[INFO] [stdout]    --> src/tuner.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub struct ProfitabilityTracker {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `record_snapshot`, `is_ready_for_live`, `should_send_notification`, `mark_notification_sent`, and `consecutive_hours` are never used
[INFO] [stdout]    --> src/tuner.rs:131:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | impl ProfitabilityTracker {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout] 131 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn record_snapshot(&mut self, pnl: Decimal) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn is_ready_for_live(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn should_send_notification(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn mark_notification_sent(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn consecutive_hours(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TunerConfig` is never constructed
[INFO] [stdout]    --> src/tuner.rs:188:12
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub struct TunerConfig {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AutoTuner` is never constructed
[INFO] [stdout]    --> src/tuner.rs:222:12
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub struct AutoTuner {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tuner.rs:258:12
[INFO] [stdout]     |
[INFO] [stdout] 257 | impl AutoTuner {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] 258 |     pub fn new(config: Arc<Config>, tuner_config: TunerConfig) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     pub fn process_signal(&self, signal: &TradeSignal, is_maker: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     pub fn process_trade_update(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn update_inventory(&self, token_id: u64, delta: i32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |     fn check_inventory_health(&self, token_id: u64, inventory: i32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     fn calculate_inventory_health(&self, inventory: i32) -> InventoryHealth {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 |     pub fn get_ask_skew_multiplier(&self) -> Decimal {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     pub async fn run_optimization_cycle(&self) -> Option<OptimizationResult> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 486 |     pub async fn check_profitability_and_notify(&self, current_pnl: Decimal) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 509 |     async fn send_notification(&self, message: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn get_best_spacing(&self) -> Decimal {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 544 |     pub fn get_stats(&self) -> TunerStats {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 561 |     pub fn set_enabled(&self, enabled: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 565 |     fn now_ns() -> u64 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TunerStats` is never constructed
[INFO] [stdout]    --> src/tuner.rs:575:12
[INFO] [stdout]     |
[INFO] [stdout] 575 | pub struct TunerStats {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_tuner_loop` is never used
[INFO] [stdout]    --> src/tuner.rs:589:14
[INFO] [stdout]     |
[INFO] [stdout] 589 | pub async fn run_tuner_loop(tuner: Arc<AutoTuner>, mut shutdown_rx: mpsc::Receiver<()>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_ORDERS_PER_LEVEL` is never used
[INFO] [stdout]   --> src/backtester.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const MAX_ORDERS_PER_LEVEL: usize = 64;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PRICE_LEVELS` is never used
[INFO] [stdout]   --> src/backtester.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const MAX_PRICE_LEVELS: usize = 32;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FILL_BUFFER_SIZE` is never used
[INFO] [stdout]   --> src/backtester.rs:25:7
[INFO] [stdout]    |
[INFO] [stdout] 25 | const FILL_BUFFER_SIZE: usize = 16;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BASE_CANCEL_RATE` is never used
[INFO] [stdout]   --> src/backtester.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const BASE_CANCEL_RATE: f64 = 0.001;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CANCEL_RATE_PER_TICK` is never used
[INFO] [stdout]   --> src/backtester.rs:31:7
[INFO] [stdout]    |
[INFO] [stdout] 31 | const CANCEL_RATE_PER_TICK: f64 = 0.005;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_CANCEL_RATE` is never used
[INFO] [stdout]   --> src/backtester.rs:34:7
[INFO] [stdout]    |
[INFO] [stdout] 34 | const MAX_CANCEL_RATE: f64 = 0.10;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Order` is never constructed
[INFO] [stdout]   --> src/backtester.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct Order {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `can_fill`, `mark_filled`, `partial_fill`, and `cancel` are never used
[INFO] [stdout]    --> src/backtester.rs:71:12
[INFO] [stdout]     |
[INFO] [stdout]  68 | impl Order {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn can_fill(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn mark_filled(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn partial_fill(&mut self, qty: Decimal) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn cancel(&mut self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PriceLevelQueue` is never constructed
[INFO] [stdout]    --> src/backtester.rs:131:12
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub struct PriceLevelQueue {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/backtester.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout] 142 | impl PriceLevelQueue {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn new(price: Decimal) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn add_order(&mut self, mut order: Order) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn volume_ahead_of(&self, priority_index: u32) -> Decimal {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn process_trade(&mut self, trade_volume: Decimal) -> Decimal {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn simulate_cancellations(&mut self, ticks_from_mid: u32, rng_seed: u64) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn get_filled_orders(&self, buffer: &mut SmallVec<[Order; FILL_BUFFER_SIZE]>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn cleanup(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TradeTick` is never constructed
[INFO] [stdout]    --> src/backtester.rs:267:12
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub struct TradeTick {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/backtester.rs:280:12
[INFO] [stdout]     |
[INFO] [stdout] 278 | impl TradeTick {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] 279 |     #[inline]
[INFO] [stdout] 280 |     pub fn new(timestamp_ns: u64, price: Decimal, volume: Decimal, side: Side) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FillResult` is never constructed
[INFO] [stdout]    --> src/backtester.rs:291:12
[INFO] [stdout]     |
[INFO] [stdout] 291 | pub struct FillResult {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Backtester` is never constructed
[INFO] [stdout]    --> src/backtester.rs:312:12
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub struct Backtester {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/backtester.rs:337:12
[INFO] [stdout]     |
[INFO] [stdout] 335 | impl Backtester {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 336 |     /// Create a new backtester with given tick size
[INFO] [stdout] 337 |     pub fn new(tick_size: Decimal) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     pub fn update_mid_price(&mut self, mid_price: Decimal) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 360 |     pub fn place_order(
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 407 |     pub fn cancel_order(&mut self, order_id: u64) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 430 |     pub fn check_fills(&mut self, tick: &TradeTick) -> &[FillResult] {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 505 |     fn mark_order_filled(&mut self, order_id: u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 519 |     fn calculate_ticks_from_mid(&self, price: Decimal) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 525 |     fn calc_ticks_from_mid_static(price: Decimal, mid_price: Decimal, tick_size: Decimal) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 532 |     pub fn get_active_orders(&self) -> SmallVec<[Order; 64]> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 545 |     pub fn cleanup(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn stats(&self) -> BacktesterStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BacktesterStats` is never constructed
[INFO] [stdout]    --> src/backtester.rs:572:12
[INFO] [stdout]     |
[INFO] [stdout] 572 | pub struct BacktesterStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_ORDER_LIFE_NS` is never used
[INFO] [stdout]   --> src/simulator.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const MIN_ORDER_LIFE_NS: u64 = 50_000_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_ORDER_AGE_NS` is never used
[INFO] [stdout]   --> src/simulator.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 | const MAX_ORDER_AGE_NS: u64 = 30_000_000_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_ACTIVE_ORDERS` is never used
[INFO] [stdout]   --> src/simulator.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const MAX_ACTIVE_ORDERS: usize = 50;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SLIPPAGE_BPS_PER_1000_USD` is never used
[INFO] [stdout]   --> src/simulator.rs:38:7
[INFO] [stdout]    |
[INFO] [stdout] 38 | const SLIPPAGE_BPS_PER_1000_USD: Decimal = Decimal::ONE;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SELF_IMPACT_THRESHOLD_PCT` is never used
[INFO] [stdout]   --> src/simulator.rs:41:7
[INFO] [stdout]    |
[INFO] [stdout] 41 | const SELF_IMPACT_THRESHOLD_PCT: Decimal = Decimal::ONE; // 1%
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Simulated` is never used
[INFO] [stdout]   --> src/simulator.rs:49:11
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub trait Simulated {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LiveMode` is never constructed
[INFO] [stdout]   --> src/simulator.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct LiveMode;
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SimOrderState` is never used
[INFO] [stdout]   --> src/simulator.rs:85:10
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub enum SimOrderState {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SimulatedOrder` is never constructed
[INFO] [stdout]   --> src/simulator.rs:95:12
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub struct SimulatedOrder {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/simulator.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl SimulatedOrder {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 123 |     /// Create from a trade signal with LOB snapshot for queue position
[INFO] [stdout] 124 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn from_prepared(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub fn calculate_volume_ahead(side: Side, price: Decimal, lob: Option<&OrderBookSnapshot>) -> Decimal {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn remaining(&self) -> Decimal {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn is_active(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn is_eligible_for_fill(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn should_fill(&self, trade_price: Decimal, trade_crosses: bool) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn add_cumulative_volume(&mut self, volume: Decimal) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub fn mark_filled(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     pub fn partial_fill(&mut self, qty: Decimal) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn cancel(&mut self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     fn now_ns() -> u64 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SimulatedFill` is never constructed
[INFO] [stdout]    --> src/simulator.rs:288:12
[INFO] [stdout]     |
[INFO] [stdout] 288 | pub struct SimulatedFill {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FillReason` is never used
[INFO] [stdout]    --> src/simulator.rs:303:10
[INFO] [stdout]     |
[INFO] [stdout] 303 | pub enum FillReason {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SimulatedOrderBook` is never constructed
[INFO] [stdout]    --> src/simulator.rs:315:12
[INFO] [stdout]     |
[INFO] [stdout] 315 | pub struct SimulatedOrderBook {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/simulator.rs:325:12
[INFO] [stdout]     |
[INFO] [stdout] 324 | impl SimulatedOrderBook {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 325 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 334 |     pub fn add_order(&self, order: SimulatedOrder) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 346 |     pub fn add_trade_volume(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |     pub fn get_fillable_orders(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 401 |     pub fn fill_order(&self, order_id: u64, fill_size: Decimal) -> Option<SimulatedOrder> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     pub fn cancel_order(&self, order_id: u64) -> Option<SimulatedOrder> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     pub fn cancel_order_with_latency(&self, order_id: u64) -> Result<Option<SimulatedOrder>, &'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn hash_market_id_pub(market_id: &MarketId) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 439 |     pub fn active_orders(&self) -> Vec<SimulatedOrder> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     pub fn active_order_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 453 |     pub fn cancel_stale_orders(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 467 |     pub fn enforce_order_limit(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 493 |     fn make_index_key(market_id: &MarketId, side: Side, price: Decimal) -> (u64, u8, i64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn hash_market_id(market_id: &MarketId) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 509 |     fn price_to_cents(price: Decimal) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FillSimulator` is never constructed
[INFO] [stdout]    --> src/simulator.rs:532:12
[INFO] [stdout]     |
[INFO] [stdout] 532 | pub struct FillSimulator {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/simulator.rs:588:12
[INFO] [stdout]     |
[INFO] [stdout] 586 | impl FillSimulator {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 587 |     /// Create a new fill simulator
[INFO] [stdout] 588 |     pub fn new(config: Arc<Config>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 593 |     pub fn with_balance(config: Arc<Config>, initial_balance: Decimal) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 623 |     pub fn update_lob(&self, snapshot: OrderBookSnapshot) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 629 |     pub fn track_order(&self, signal: &TradeSignal, is_maker: bool) -> Option<u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 670 |     pub fn track_prepared_order(&self, order: &PreparedOrder, is_maker: bool, expected_profit_bps: i32) -> Option<u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn update_daily_volume(&self, volume_usd: Decimal) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 700 |     pub fn update_mid_price(&self, market_id: &MarketId, mid_price: Decimal) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 706 |     pub fn cancel_order(&self, order_id: u64) -> Result<Option<SimulatedOrder>, &'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 711 |     fn calculate_slippage_bps(&self, fill_size: Decimal, fill_price: Decimal) -> Decimal {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 729 |     pub fn process_trade(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 836 |     fn calculate_fee_bps(&self, is_maker: bool, probability: Decimal) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 844 |     fn log_fill(&self, fill: &SimulatedFill, order: &SimulatedOrder, probability: Decimal, slippage_bps: Decimal) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 879 |     fn record_fill(&self, fill: &SimulatedFill) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 912 |     pub fn get_balance(&self) -> Decimal {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 916 |     pub fn get_pnl(&self) -> Decimal {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 920 |     pub fn active_order_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 924 |     pub fn get_stats(&self) -> SimulatorStats {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 948 |     pub fn get_fill_history(&self) -> Vec<SimulatedFill> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 952 |     pub fn set_enabled(&self, enabled: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 956 |     pub fn is_enabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 960 |     pub fn reset(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 977 |     fn to_micro(d: Decimal) -> i64 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 982 |     fn from_micro(micro: i64) -> Decimal {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SimulatorStats` is never constructed
[INFO] [stdout]     --> src/simulator.rs:1010:12
[INFO] [stdout]      |
[INFO] [stdout] 1010 | pub struct SimulatorStats {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `win_rate` and `maker_ratio` are never used
[INFO] [stdout]     --> src/simulator.rs:1028:12
[INFO] [stdout]      |
[INFO] [stdout] 1027 | impl SimulatorStats {
[INFO] [stdout]      | ------------------- methods in this implementation
[INFO] [stdout] 1028 |     pub fn win_rate(&self) -> f64 {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1036 |     pub fn maker_ratio(&self) -> f64 {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `merge_on_chain`, `redeem_on_chain`, `build_eip1559_tx`, `wait_for_tx`, `query_token_balance`, and `deployed_capital` are never used
[INFO] [stdout]     --> src/arb.rs:2079:14
[INFO] [stdout]      |
[INFO] [stdout]  388 | impl ArbEngine {
[INFO] [stdout]      | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2079 |     async fn merge_on_chain(
[INFO] [stdout]      |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2174 |     async fn redeem_on_chain(
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2255 |     async fn build_eip1559_tx(
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2335 |     async fn wait_for_tx(
[INFO] [stdout]      |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2373 |     async fn query_token_balance(&self, token_id: &str) -> Result<f64, String> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2421 |     fn deployed_capital(&self) -> f64 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `token_registry` is never read
[INFO] [stdout]    --> src/oracle_scalp.rs:123:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub struct OracleEngine {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 123 |     token_registry: Arc<TokenIdRegistry>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `maker_manager`
[INFO] [stdout]    --> src/main.rs:734:5
[INFO] [stdout]     |
[INFO] [stdout] 734 |     maker_manager: Arc<MakerManager>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_maker_manager`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `executor`
[INFO] [stdout]    --> src/main.rs:906:5
[INFO] [stdout]     |
[INFO] [stdout] 906 |     executor: Arc<OrderExecutor>,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_executor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/main.rs:969:5
[INFO] [stdout]     |
[INFO] [stdout] 969 |     config: Arc<Config>,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `warm_order_cache` is never used
[INFO] [stdout]     --> src/main.rs:1051:10
[INFO] [stdout]      |
[INFO] [stdout] 1051 | async fn warm_order_cache(
[INFO] [stdout]      |          ^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_shadow_mode`, `shadow_initial_balance`, `max_order_size`, and `grid` are never read
[INFO] [stdout]   --> src/config.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct TradingConfig {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub is_shadow_mode: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub shadow_initial_balance: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub max_order_size: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub grid: GridConfig,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TradingConfig` 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 `presign_cache_range_pct` is never read
[INFO] [stdout]    --> src/config.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout]  93 | pub struct FeeCurve2026Config {
[INFO] [stdout]     |            ------------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub presign_cache_range_pct: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FeeCurve2026Config` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/config.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub struct GridConfig {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 147 |     /// Number of levels per side (buy/sell)
[INFO] [stdout] 148 |     pub levels_per_side: u8,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 149 |     /// Size per level in USDC
[INFO] [stdout] 150 |     pub size_per_level: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 151 |     /// Base spacing between levels (0.01 = 1 cent)
[INFO] [stdout] 152 |     pub base_spacing: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 153 |     /// Volatility multiplier for dynamic spacing
[INFO] [stdout] 154 |     pub volatility_multiplier: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 155 |     /// Maximum total exposure per grid side
[INFO] [stdout] 156 |     pub max_grid_exposure: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 157 |     /// Minimum aggregate profit BPS for grid
[INFO] [stdout] 158 |     pub min_aggregate_profit_bps: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 159 |     /// Auto-rebalance on fill (place counter-order)
[INFO] [stdout] 160 |     pub auto_rebalance: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 161 |     /// Use batch execution (create_orders endpoint)
[INFO] [stdout] 162 |     pub batch_execution: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GridConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `gap_threshold_pct`, `volatility_spike_threshold`, `volatility_buffer_multiplier`, and `volume_spike_mult` are never read
[INFO] [stdout]    --> src/config.rs:194:9
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub struct RiskConfig {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 194 |     pub gap_threshold_pct: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub volatility_spike_threshold: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub volatility_buffer_multiplier: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub volume_spike_mult: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RiskConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `connection_timeout_ms` and `max_reconnect_attempts` are never read
[INFO] [stdout]    --> src/config.rs:227:9
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub struct NetworkConfig {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 227 |     pub connection_timeout_ms: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub max_reconnect_attempts: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `NetworkConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `maker_mode` and `taker_mode` are never read
[INFO] [stdout]    --> src/config.rs:363:9
[INFO] [stdout]     |
[INFO] [stdout] 361 | pub struct RuntimeParams {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 362 |     pub trading_enabled: std::sync::atomic::AtomicBool,
[INFO] [stdout] 363 |     pub maker_mode: std::sync::atomic::AtomicBool,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 364 |     pub taker_mode: std::sync::atomic::AtomicBool,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RuntimeParams` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `GoodTilCancelled` and `FillOrKill` are never constructed
[INFO] [stdout]   --> src/types.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub enum OrderType {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 35 |     GoodTilCancelled = 2,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |     FillOrKill = 3,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OrderType` 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 `GTD` and `FOK` are never constructed
[INFO] [stdout]   --> src/types.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub enum TimeInForce {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 44 |     GTC = 0, // Good til cancelled
[INFO] [stdout] 45 |     GTD = 1, // Good til date
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 46 |     FOK = 2, // Fill or kill
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TimeInForce` 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 `spread_bps` is never used
[INFO] [stdout]    --> src/types.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout]  99 | impl OrderBookSnapshot {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn spread_bps(&self) -> Option<u32> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_hex` is never used
[INFO] [stdout]    --> src/types.rs:178:12
[INFO] [stdout]     |
[INFO] [stdout] 171 | impl MarketId {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn from_hex(hex: &str, token_id: u64) -> Option<Self> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `High` is never constructed
[INFO] [stdout]    --> src/types.rs:214:5
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub enum SignalUrgency {
[INFO] [stdout]     |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 214 |     High = 2,     // Act immediately, use taker if needed
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SignalUrgency` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `time_in_force` and `created_at_ns` are never read
[INFO] [stdout]    --> src/types.rs:228:9
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub struct PreparedOrder {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub time_in_force: TimeInForce,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub created_at_ns: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PreparedOrder` 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 `counter` is never read
[INFO] [stdout]    --> src/types.rs:287:5
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub struct NonceGenerator {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] 287 |     counter: AtomicU64,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `next` is never used
[INFO] [stdout]    --> src/types.rs:302:12
[INFO] [stdout]     |
[INFO] [stdout] 290 | impl NonceGenerator {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 302 |     pub fn next(&self) -> u64 {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ClobMessage` is never used
[INFO] [stdout]    --> src/types.rs:317:10
[INFO] [stdout]     |
[INFO] [stdout] 317 | pub enum ClobMessage<'a> {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timestamp` and `hash` are never read
[INFO] [stdout]    --> src/types.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 348 | pub struct PolymarketMessage<'a> {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 364 |     pub timestamp: Option<&'a str>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 370 |     pub hash: Option<&'a str>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PolymarketMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BookUpdate` is never constructed
[INFO] [stdout]    --> src/types.rs:376:12
[INFO] [stdout]     |
[INFO] [stdout] 376 | pub struct BookUpdate<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TradeUpdate` is never constructed
[INFO] [stdout]    --> src/types.rs:387:12
[INFO] [stdout]     |
[INFO] [stdout] 387 | pub struct TradeUpdate<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PriceChangeUpdate` is never constructed
[INFO] [stdout]    --> src/types.rs:398:12
[INFO] [stdout]     |
[INFO] [stdout] 398 | pub struct PriceChangeUpdate<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OrderUpdate` is never constructed
[INFO] [stdout]    --> src/types.rs:407:12
[INFO] [stdout]     |
[INFO] [stdout] 407 | pub struct OrderUpdate<'a> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `bid_qty` and `ask_qty` are never read
[INFO] [stdout]    --> src/types.rs:423:9
[INFO] [stdout]     |
[INFO] [stdout] 417 | pub struct BinanceTickerMessage<'a> {
[INFO] [stdout]     |            -------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 423 |     pub bid_qty: &'a str,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 427 |     pub ask_qty: &'a str,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BinanceTickerMessage` 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 `price` is never read
[INFO] [stdout]    --> src/types.rs:435:9
[INFO] [stdout]     |
[INFO] [stdout] 432 | pub struct CoinbaseTickerMessage<'a> {
[INFO] [stdout]     |            --------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 435 |     pub price: &'a str,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CoinbaseTickerMessage` 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 `original_size` and `submitted_at_ns` are never read
[INFO] [stdout]    --> src/types.rs:447:9
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub struct ExecutionReport {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 447 |     pub original_size: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 450 |     pub submitted_at_ns: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExecutionReport` 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 `Pending` is never constructed
[INFO] [stdout]    --> src/types.rs:457:5
[INFO] [stdout]     |
[INFO] [stdout] 456 | pub enum OrderStatus {
[INFO] [stdout]     |          ----------- variant in this enum
[INFO] [stdout] 457 |     Pending = 0,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OrderStatus` 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 `get_info` and `is_empty` are never used
[INFO] [stdout]    --> src/types.rs:538:12
[INFO] [stdout]     |
[INFO] [stdout] 490 | impl TokenIdRegistry {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 538 |     pub fn get_info(&self, hash: u64) -> Option<TokenMarketInfo> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 547 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `question` and `volume` are never read
[INFO] [stdout]   --> src/websocket.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | struct GammaMarket {
[INFO] [stdout]    |        ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 37 |     question: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 38 |     #[serde(rename = "volumeNum", default)]
[INFO] [stdout] 39 |     volume: Option<f64>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GammaMarket` 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 `timestamp` and `hash` are never read
[INFO] [stdout]   --> src/websocket.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | struct PolymarketBookSnapshot {
[INFO] [stdout]    |        ---------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 50 |     timestamp: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     hash: Option<String>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PolymarketBookSnapshot` 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 `source` and `message` are never read
[INFO] [stdout]    --> src/websocket.rs:132:9
[INFO] [stdout]     |
[INFO] [stdout] 131 |     Error {
[INFO] [stdout]     |     ----- fields in this variant
[INFO] [stdout] 132 |         source: ConnectionSource,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 133 |         message: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WsEvent` 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 `asset_id`, `side`, `price`, `original_size`, and `timestamp_ns` are never read
[INFO] [stdout]    --> src/websocket.rs:138:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |     OrderUpdate {
[INFO] [stdout]     |     ----------- fields in this variant
[INFO] [stdout] 137 |         order_id: String,
[INFO] [stdout] 138 |         asset_id: String,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 139 |         status: String,
[INFO] [stdout] 140 |         side: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 141 |         price: String,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 142 |         original_size: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 143 |         size_matched: String,
[INFO] [stdout] 144 |         timestamp_ns: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WsEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `parse_book_update` is never used
[INFO] [stdout]    --> src/websocket.rs:491:8
[INFO] [stdout]     |
[INFO] [stdout] 168 | impl PolymarketWs {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 491 |     fn parse_book_update(&self, update: &crate::types::BookUpdate, timestamp_ns: u64) -> OrderBookSnapshot {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `market` and `outcome` are never read
[INFO] [stdout]    --> src/websocket.rs:568:5
[INFO] [stdout]     |
[INFO] [stdout] 558 | struct UserChannelMessage<'a> {
[INFO] [stdout]     |        ------------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 568 |     market: Option<&'a str>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 582 |     outcome: Option<&'a str>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UserChannelMessage` 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 `contract_address`, `neg_risk_contract_address`, `nonce_generator`, and `max_cache_size` are never read
[INFO] [stdout]   --> src/signing.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct OrderSigner {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 45 |     contract_address: Address,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// NegRisk exchange address
[INFO] [stdout] 47 |     neg_risk_contract_address: Address,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     nonce_generator: NonceGenerator,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     max_cache_size: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_raw` is never used
[INFO] [stdout]   --> src/signing.rs:89:18
[INFO] [stdout]    |
[INFO] [stdout] 75 | impl SignatureCacheKey {
[INFO] [stdout]    | ---------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub const fn from_raw(token_id: u64, side: u8, price_bps: u16, size_cents: u32) -> Self {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `created_at_ns` is never read
[INFO] [stdout]   --> src/signing.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub struct CachedSignature {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 97 |     pub order: PreparedOrder,
[INFO] [stdout] 98 |     pub created_at_ns: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CachedSignature` 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 `warm_signature_cache`, `evict_expired`, `prepare_order`, `warm_cache`, `get_cached_order`, and `clear_expired` are never used
[INFO] [stdout]    --> src/signing.rs:168:18
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl OrderSigner {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub async fn warm_signature_cache(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     fn evict_expired(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub async fn prepare_order(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 562 |     pub async fn warm_cache(
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 577 |     pub fn get_cached_order(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 589 |     pub fn clear_expired(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BatchSigner` is never constructed
[INFO] [stdout]    --> src/signing.rs:595:12
[INFO] [stdout]     |
[INFO] [stdout] 595 | pub struct BatchSigner {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `prepare_batch` are never used
[INFO] [stdout]    --> src/signing.rs:600:12
[INFO] [stdout]     |
[INFO] [stdout] 599 | impl BatchSigner {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 600 |     pub fn new(signer: Arc<OrderSigner>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 605 |     pub async fn prepare_batch(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `min_taker_spread_bps` is never read
[INFO] [stdout]   --> src/pricing.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct FeeThresholds {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub min_taker_spread_bps: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FeeThresholds` 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 `is_taker_profitable` is never used
[INFO] [stdout]   --> src/pricing.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl FeeThresholds {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn is_taker_profitable(&self, spread_bps: u32) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `current_volatility`, `baseline_volatility`, `volatility_ratio`, and `reset` are never used
[INFO] [stdout]    --> src/pricing.rs:226:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | impl VolatilityTracker {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn current_volatility(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn baseline_volatility(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn volatility_ratio(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VOLUME_MA_WINDOW_SECS` is never used
[INFO] [stdout]    --> src/pricing.rs:267:11
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub const VOLUME_MA_WINDOW_SECS: usize = 300;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/pricing.rs:327:12
[INFO] [stdout]     |
[INFO] [stdout] 294 | impl VolumeTracker {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn record_trade_decimal(&mut self, volume: Decimal) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 399 |     pub fn get_current_1s_volume(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub fn is_circuit_breaker_triggered(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 417 |     pub fn get_velocity_ratio(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 427 |     pub fn reset_circuit_breaker(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 435 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn stats(&self) -> VolumeStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VolumeStats` is never constructed
[INFO] [stdout]    --> src/pricing.rs:481:12
[INFO] [stdout]     |
[INFO] [stdout] 481 | pub struct VolumeStats {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `spread_bps` and `volume_5m` are never read
[INFO] [stdout]    --> src/pricing.rs:570:9
[INFO] [stdout]     |
[INFO] [stdout] 568 | pub struct MarketScore {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 569 |     /// Spread in basis points
[INFO] [stdout] 570 |     pub spread_bps: u32,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 571 |     /// 5-minute trade volume (USDC)
[INFO] [stdout] 572 |     pub volume_5m: f64,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MarketScore` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `market_id` and `external_ref_price` are never read
[INFO] [stdout]    --> src/pricing.rs:608:9
[INFO] [stdout]     |
[INFO] [stdout] 607 | pub struct MarketState {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 608 |     pub market_id: MarketId,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 613 |     pub external_ref_price: Option<Decimal>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MarketState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_stale` is never used
[INFO] [stdout]    --> src/pricing.rs:675:12
[INFO] [stdout]     |
[INFO] [stdout] 624 | impl MarketState {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 675 |     pub fn is_stale(&self, threshold_ns: u64) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `best_price` is never used
[INFO] [stdout]    --> src/pricing.rs:695:12
[INFO] [stdout]     |
[INFO] [stdout] 692 | impl ExchangePrices {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn best_price(&self, symbol: &str) -> Option<(Decimal, Decimal)> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]    --> src/pricing.rs:784:12
[INFO] [stdout]     |
[INFO] [stdout] 734 | impl InventoryTracker {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 784 |     pub fn reset(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `id` is never read
[INFO] [stdout]    --> src/pricing.rs:808:9
[INFO] [stdout]     |
[INFO] [stdout] 807 | pub struct LiveOrder {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 808 |     pub id: u64,
[INFO] [stdout]     |         ^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LiveOrder` 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 `remove_order` and `reset` are never used
[INFO] [stdout]    --> src/pricing.rs:882:12
[INFO] [stdout]     |
[INFO] [stdout] 818 | impl OrderLifecycleManager {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 882 |     pub fn remove_order(&self, id: u64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 941 |     pub fn reset(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_crypto_volatile` and `validate_signal` are never used
[INFO] [stdout]     --> src/pricing.rs:1111:12
[INFO] [stdout]      |
[INFO] [stdout]  973 | impl PricingEngine {
[INFO] [stdout]      | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1111 |     pub fn is_crypto_volatile(&self) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1287 |     pub fn validate_signal(&self, signal: &TradeSignal) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `round_trip_profit` is never used
[INFO] [stdout]     --> src/pricing.rs:1330:12
[INFO] [stdout]      |
[INFO] [stdout] 1330 |     pub fn round_trip_profit(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_profitable_spread` is never used
[INFO] [stdout]     --> src/pricing.rs:1343:12
[INFO] [stdout]      |
[INFO] [stdout] 1343 |     pub fn min_profitable_spread(fee_bps: u32, min_profit_bps: u32) -> u32 {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `price_to_prob` is never used
[INFO] [stdout]     --> src/pricing.rs:1350:12
[INFO] [stdout]      |
[INFO] [stdout] 1350 |     pub fn price_to_prob(price: Decimal) -> Decimal {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `KillSwitchState` is never used
[INFO] [stdout]   --> src/risk.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum KillSwitchState {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `unrealized_pnl` is never read
[INFO] [stdout]   --> src/risk.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct Position {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub unrealized_pnl: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Position` 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 `value_at` and `update_unrealized` are never used
[INFO] [stdout]   --> src/risk.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | impl Position {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn value_at(&self, price: Decimal) -> Decimal {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn update_unrealized(&mut self, current_price: Decimal) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `RejectedStaleData` and `RejectedGapProtection` are never constructed
[INFO] [stdout]    --> src/risk.rs:99:5
[INFO] [stdout]     |
[INFO] [stdout]  93 | pub enum RiskCheckResult {
[INFO] [stdout]     |          --------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  99 |     RejectedStaleData,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 100 |     RejectedGapProtection,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RiskCheckResult` 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 `GapProtection` is never constructed
[INFO] [stdout]    --> src/risk.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct GapProtection {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `check_price_update`, `trigger`, `is_triggered`, `reset`, and `stats` are never used
[INFO] [stdout]    --> src/risk.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 121 | impl GapProtection {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 122 |     pub fn new(gap_threshold_pct: Decimal) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     pub fn check_price_update(&self, token_id: u64, new_price: Decimal) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn trigger(&self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub fn is_triggered(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn reset(&self) -> bool {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn stats(&self) -> GapProtectionStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GapProtectionStats` is never constructed
[INFO] [stdout]    --> src/risk.rs:210:12
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub struct GapProtectionStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VolumeCircuitBreaker` is never constructed
[INFO] [stdout]    --> src/risk.rs:222:12
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub struct VolumeCircuitBreaker {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/risk.rs:244:12
[INFO] [stdout]     |
[INFO] [stdout] 243 | impl VolumeCircuitBreaker {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout] 244 |     pub fn new(spike_multiplier: f64) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub fn record_trade_volume(&self, volume_usdc: Decimal) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn is_triggered(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub fn reset(&self) -> bool {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |     pub fn stats(&self) -> VolumeCircuitBreakerStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |     fn current_second() -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 365 |     fn now_ns() -> u64 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VolumeCircuitBreakerStats` is never constructed
[INFO] [stdout]    --> src/risk.rs:375:12
[INFO] [stdout]     |
[INFO] [stdout] 375 | pub struct VolumeCircuitBreakerStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset_kill_switch`, `reset_daily`, `record_shadow_trade`, and `mark_to_market` are never used
[INFO] [stdout]    --> src/risk.rs:641:12
[INFO] [stdout]     |
[INFO] [stdout] 384 | impl RiskManager {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 641 |     pub fn reset_kill_switch(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 659 |     pub fn reset_daily(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 673 |     pub fn record_shadow_trade(&self, price: Decimal, size: Decimal, is_buy: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 700 |     pub fn mark_to_market(&self, token_id: u64, current_price: Decimal) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `expected_profit_bps` is never read
[INFO] [stdout]    --> src/execution.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 101 | struct PendingOrder {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 104 |     expected_profit_bps: i32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PendingOrder` 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 `committed_capital_usdc`, `cancel_all`, and `get_metrics` are never used
[INFO] [stdout]     --> src/execution.rs:777:12
[INFO] [stdout]      |
[INFO] [stdout]  111 | impl OrderExecutor {
[INFO] [stdout]      | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  777 |     pub fn committed_capital_usdc(&self) -> f64 {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  830 |     pub async fn cancel_all(&self) -> Result<u32, ExecutionError> {
[INFO] [stdout]      |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1534 |     pub fn get_metrics(&self) -> ExecutionMetrics {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecutionMetrics` is never constructed
[INFO] [stdout]     --> src/execution.rs:1584:12
[INFO] [stdout]      |
[INFO] [stdout] 1584 | pub struct ExecutionMetrics {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `executor` and `active_orders` are never read
[INFO] [stdout]     --> src/execution.rs:1594:5
[INFO] [stdout]      |
[INFO] [stdout] 1593 | pub struct MakerManager {
[INFO] [stdout]      |            ------------ fields in this struct
[INFO] [stdout] 1594 |     executor: Arc<OrderExecutor>,
[INFO] [stdout]      |     ^^^^^^^^
[INFO] [stdout] 1595 |     /// Active maker orders per market
[INFO] [stdout] 1596 |     active_orders: Mutex<FxHashMap<u64, Vec<String>>>,
[INFO] [stdout]      |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `place_maker_orders`, `track_order`, and `cancel_market_orders` are never used
[INFO] [stdout]     --> src/execution.rs:1608:18
[INFO] [stdout]      |
[INFO] [stdout] 1599 | impl MakerManager {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1608 |     pub async fn place_maker_orders(
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1661 |     fn track_order(&self, token_id: u64, order_id: String) {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1667 |     pub async fn cancel_market_orders(&self, token_id: u64) -> u32 {
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_shadow_metrics` is never used
[INFO] [stdout]    --> src/metrics.rs:889:8
[INFO] [stdout]     |
[INFO] [stdout] 889 | pub fn update_shadow_metrics(balance: f64, pnl: f64, _trades: u64, win_rate: f64, maker_ratio: f64, net_fees: f64, active_orders: i...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_inventory_health` is never used
[INFO] [stdout]    --> src/metrics.rs:899:8
[INFO] [stdout]     |
[INFO] [stdout] 899 | pub fn update_inventory_health(token_id: u64, health_status: &str, inventory: f64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_tuner_metrics` is never used
[INFO] [stdout]    --> src/metrics.rs:906:8
[INFO] [stdout]     |
[INFO] [stdout] 906 | pub fn update_tuner_metrics(best_spacing: f64, best_pnl: f64, cycles: u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_consecutive_profit_hours` is never used
[INFO] [stdout]    --> src/metrics.rs:913:8
[INFO] [stdout]     |
[INFO] [stdout] 913 | pub fn update_consecutive_profit_hours(hours: u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_ask_skew_multiplier` is never used
[INFO] [stdout]    --> src/metrics.rs:918:8
[INFO] [stdout]     |
[INFO] [stdout] 918 | pub fn update_ask_skew_multiplier(multiplier: f64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `start` and `phase` are never read
[INFO] [stdout]    --> src/metrics.rs:962:5
[INFO] [stdout]     |
[INFO] [stdout] 961 | pub struct TscLatencyTracker {
[INFO] [stdout]     |            ----------------- fields in this struct
[INFO] [stdout] 962 |     start: QuantaInstant,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 963 |     phase: &'static str,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `start`, `finish`, `finish_raw`, and `elapsed_ns` are never used
[INFO] [stdout]     --> src/metrics.rs:969:12
[INFO] [stdout]      |
[INFO] [stdout]  966 | impl TscLatencyTracker {
[INFO] [stdout]      | ---------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  969 |     pub fn start(phase: &'static str) -> Self {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  984 |     pub fn finish(self) {
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  993 |     pub fn finish_raw(start: QuantaInstant, phase: &'static str) {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1002 |     pub fn elapsed_ns(&self) -> u64 {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `record_arb_opportunity` is never used
[INFO] [stdout]     --> src/metrics.rs:1100:8
[INFO] [stdout]      |
[INFO] [stdout] 1100 | pub fn record_arb_opportunity(asset: &str, source: &str, executed: bool) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spin_hint` is never used
[INFO] [stdout]   --> src/hints.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn spin_hint() {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `memory_fence` is never used
[INFO] [stdout]   --> src/hints.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub fn memory_fence() {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compiler_fence` is never used
[INFO] [stdout]   --> src/hints.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn compiler_fence() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdtsc` is never used
[INFO] [stdout]   --> src/hints.rs:94:8
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub fn rdtsc() -> u64 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rdtscp` is never used
[INFO] [stdout]    --> src/hints.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn rdtscp() -> (u64, u32) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CACHE_LINE_SIZE` is never used
[INFO] [stdout]    --> src/hints.rs:151:11
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub const CACHE_LINE_SIZE: usize = 64;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CacheLinePadded` is never constructed
[INFO] [stdout]    --> src/hints.rs:155:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub struct CacheLinePadded<T>(pub T);
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get`, and `get_mut` are never used
[INFO] [stdout]    --> src/hints.rs:159:18
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl<T> CacheLinePadded<T> {
[INFO] [stdout]     | -------------------------- associated items in this implementation
[INFO] [stdout] 158 |     #[inline(always)]
[INFO] [stdout] 159 |     pub const fn new(val: T) -> Self {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn get(&self) -> &T {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn get_mut(&mut self) -> &mut T {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `keep_in_register` is never used
[INFO] [stdout]    --> src/hints.rs:192:8
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub fn keep_in_register<T>(val: T) -> T {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `assume` is never used
[INFO] [stdout]    --> src/hints.rs:201:15
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub unsafe fn assume(cond: bool) {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unreachable_unchecked` is never used
[INFO] [stdout]    --> src/hints.rs:211:15
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub unsafe fn unreachable_unchecked() -> ! {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cmov_select_i64` is never used
[INFO] [stdout]   --> src/asm_ops.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn cmov_select_i64(condition: bool, a: i64, b: i64) -> i64 {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `store_nt_u64` is never used
[INFO] [stdout]    --> src/asm_ops.rs:105:15
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub unsafe fn store_nt_u64(ptr: *mut u64, value: u64) {
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sfence` is never used
[INFO] [stdout]    --> src/asm_ops.rs:116:8
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub fn sfence() {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pause` is never used
[INFO] [stdout]    --> src/asm_ops.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn pause() {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spin_until_eq` is never used
[INFO] [stdout]    --> src/asm_ops.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub fn spin_until_eq(atomic: &std::sync::atomic::AtomicU64, expected: u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `PartiallyFilled`, `Filled`, and `Cancelled` are never constructed
[INFO] [stdout]   --> src/grid.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum LevelState {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 35 |     PartiallyFilled = 3,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 36 |     Filled = 4,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 37 |     Cancelled = 5,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LevelState` 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 `total_size` is never used
[INFO] [stdout]    --> src/grid.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl Grid {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn total_size(&self) -> Decimal {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/grid.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub struct GridConfig {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 147 |     /// Number of levels per side
[INFO] [stdout] 148 |     pub levels_per_side: u8,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 149 |     /// Size per level in USDC
[INFO] [stdout] 150 |     pub size_per_level: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 151 |     /// Base spacing between levels (e.g., 0.01 = 1 cent)
[INFO] [stdout] 152 |     pub base_spacing: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 153 |     /// Dynamic spacing multiplier based on volatility
[INFO] [stdout] 154 |     pub volatility_multiplier: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 155 |     /// Maximum total exposure per grid
[INFO] [stdout] 156 |     pub max_exposure: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 157 |     /// Minimum profit BPS for the aggregate grid
[INFO] [stdout] 158 |     pub min_aggregate_profit_bps: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 159 |     /// Auto-rebalance on fill
[INFO] [stdout] 160 |     pub auto_rebalance: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 161 |     /// Use batch execution
[INFO] [stdout] 162 |     pub batch_execution: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub inventory_skew_factor: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 166 |     /// Maximum inventory skew in price (e.g., 0.02 = 2 cents max shift)
[INFO] [stdout] 167 |     pub max_inventory_skew: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GridConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/grid.rs:189:5
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub struct GridEngine {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 189 |     config: Arc<Config>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 190 |     grid_config: GridConfig,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 191 |     signer: Arc<OrderSigner>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 194 |     buy_grid: RwLock<Grid>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 195 |     /// Active sell grid  
[INFO] [stdout] 196 |     sell_grid: RwLock<Grid>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     order_id_counter: AtomicU64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     enabled: AtomicBool,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     grids_created: AtomicU64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 206 |     levels_filled: AtomicU64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 207 |     rebalances: AtomicU64,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/grid.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout] 210 | impl GridEngine {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 211 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn generate_grid(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 306 |     fn calculate_inventory_skew(&self, inventory: i32, side: Side) -> Decimal {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |     pub fn generate_dual_grid(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 350 |     pub async fn presign_grid(
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 391 |     pub fn is_grid_profitable_2026(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 429 |     pub fn on_level_filled(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 474 |     fn calculate_dynamic_spacing(&self, prob: Decimal) -> Decimal {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 496 |     fn estimate_level_profit_bps(&self, level_index: usize, _side: Side) -> i32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 505 |     fn get_side_exposure(&self, side: Side) -> Decimal {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 514 |     fn now_ns() -> u64 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 521 |     fn next_order_id(&self) -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 526 |     pub fn stats(&self) -> GridStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 537 |     pub fn set_enabled(&self, enabled: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GridStats` is never constructed
[INFO] [stdout]    --> src/grid.rs:544:12
[INFO] [stdout]     |
[INFO] [stdout] 544 | pub struct GridStats {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BatchOrderRequest` is never constructed
[INFO] [stdout]    --> src/grid.rs:558:12
[INFO] [stdout]     |
[INFO] [stdout] 558 | pub struct BatchOrderRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_order`, `from_grid`, and `to_json` are never used
[INFO] [stdout]    --> src/grid.rs:564:12
[INFO] [stdout]     |
[INFO] [stdout] 563 | impl BatchOrderRequest {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 564 |     pub fn new(market_id: MarketId) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 571 |     pub fn add_order(&mut self, order: PreparedOrder) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 575 |     pub fn from_grid(orders: Vec<PreparedOrder>, market_id: MarketId) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn to_json(&self) -> serde_json::Value {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mock_market_id` is never used
[INFO] [stdout]    --> src/grid.rs:607:8
[INFO] [stdout]     |
[INFO] [stdout] 607 |     fn mock_market_id() -> MarketId {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]    --> src/shadow.rs:208:12
[INFO] [stdout]     |
[INFO] [stdout] 174 | impl PositionTracker {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn reset(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Pending` is never constructed
[INFO] [stdout]    --> src/shadow.rs:218:5
[INFO] [stdout]     |
[INFO] [stdout] 217 | pub enum VirtualOrderState {
[INFO] [stdout]     |          ----------------- variant in this enum
[INFO] [stdout] 218 |     Pending = 0,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `VirtualOrderState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `order_type` and `expected_profit_bps` are never read
[INFO] [stdout]    --> src/shadow.rs:234:9
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub struct VirtualOrder {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub order_type: OrderType,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub expected_profit_bps: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `VirtualOrder` 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: associated functions `new_with_lob` and `from_prepared` are never used
[INFO] [stdout]    --> src/shadow.rs:284:12
[INFO] [stdout]     |
[INFO] [stdout] 252 | impl VirtualOrder {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 284 |     pub fn new_with_lob(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 359 |     pub fn from_prepared(id: u64, order: &PreparedOrder, is_maker: bool, expected_profit_bps: i32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `market_id` and `timestamp_ns` are never read
[INFO] [stdout]    --> src/shadow.rs:423:9
[INFO] [stdout]     |
[INFO] [stdout] 421 | pub struct VirtualFill {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 422 |     pub order_id: u64,
[INFO] [stdout] 423 |     pub market_id: MarketId,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 430 |     pub timestamp_ns: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `VirtualFill` 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 `active_orders` and `order_count` are never used
[INFO] [stdout]    --> src/shadow.rs:529:12
[INFO] [stdout]     |
[INFO] [stdout] 441 | impl VirtualOrderBook {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 529 |     pub fn active_orders(&self) -> Vec<VirtualOrder> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 538 |     pub fn order_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total_pnl` is never read
[INFO] [stdout]    --> src/shadow.rs:684:9
[INFO] [stdout]     |
[INFO] [stdout] 681 | pub struct ShadowStats {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 684 |     pub total_pnl: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ShadowStats` 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 `grid_engine` is never read
[INFO] [stdout]    --> src/shadow.rs:729:5
[INFO] [stdout]     |
[INFO] [stdout] 700 | pub struct ShadowEngine {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 729 |     grid_engine: Option<Arc<GridEngine>>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/shadow.rs:792:12
[INFO] [stdout]      |
[INFO] [stdout]  755 | impl ShadowEngine {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  792 |     pub fn set_grid_engine(&mut self, grid_engine: Arc<GridEngine>) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  843 |     pub fn track_prepared_order(&self, order: &PreparedOrder, is_maker: bool, expected_profit_bps: i32) -> Option<u64> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  868 |     pub fn track_grid_orders(&self, signals: &[TradeSignal], is_maker: bool) -> Vec<u64> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  876 |     pub fn update_daily_volume(&self, volume_usd: Decimal) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  881 |     pub fn update_mid_price(&self, market_id: &MarketId, mid_price: Decimal) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  888 |     pub fn cancel_virtual_order(&self, order_id: u64) -> Result<Option<VirtualOrder>, &'static str> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1159 |     pub fn get_fill_history(&self) -> Vec<VirtualFill> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1170 |     pub fn cancel_all_orders(&self) -> (usize, usize) {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1187 |     pub fn reset(&self) {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1205 |     pub fn set_enabled(&self, enabled: bool) {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1210 |     pub fn is_enabled(&self) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ShadowMetrics` is never constructed
[INFO] [stdout]     --> src/shadow.rs:1232:12
[INFO] [stdout]      |
[INFO] [stdout] 1232 | pub struct ShadowMetrics {
[INFO] [stdout]      |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROFITABILITY_CHECK_SECS` is never used
[INFO] [stdout]   --> src/tuner.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub const PROFITABILITY_CHECK_SECS: u64 = 3600;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id`, `grid_spacing`, `shadow_engine`, `start_balance`, and `start_time` are never read
[INFO] [stdout]   --> src/tuner.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct VirtualEnvironment {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] 47 |     pub id: u32,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 48 |     pub grid_spacing: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 49 |     pub shadow_engine: ShadowEngine,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 50 |     pub start_balance: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 51 |     pub start_time: Instant,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_pnl`, `get_stats`, and `reset` are never used
[INFO] [stdout]   --> src/tuner.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl VirtualEnvironment {
[INFO] [stdout]    | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn get_pnl(&self) -> Decimal {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn get_stats(&self) -> ShadowStats {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `grid_spacing`, `pnl`, `total_trades`, `win_rate`, `maker_ratio`, and `sharpe_estimate` are never read
[INFO] [stdout]   --> src/tuner.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct OptimizationResult {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] 89 |     pub grid_spacing: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 90 |     pub pnl: Decimal,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 91 |     pub total_trades: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 92 |     pub win_rate: f64,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 93 |     pub maker_ratio: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 94 |     pub sharpe_estimate: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OptimizationResult` 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 `as_str` is never used
[INFO] [stdout]    --> src/tuner.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | impl InventoryHealth {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 107 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `consecutive_hours` is never used
[INFO] [stdout]    --> src/tuner.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | impl ProfitabilityTracker {
[INFO] [stdout]     | ------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub fn consecutive_hours(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `optimization_interval_secs`, `skew_increase_factor`, `slack_webhook_url`, and `discord_webhook_url` are never read
[INFO] [stdout]    --> src/tuner.rs:192:9
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub struct TunerConfig {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub optimization_interval_secs: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub skew_increase_factor: Decimal,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 197 |     /// Slack webhook URL (optional)
[INFO] [stdout] 198 |     pub slack_webhook_url: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 199 |     /// Discord webhook URL (optional)
[INFO] [stdout] 200 |     pub discord_webhook_url: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TunerConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/tuner.rs:223:5
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub struct AutoTuner {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 223 |     config: Arc<Config>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     environments: RwLock<Vec<VirtualEnvironment>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     best_spacing: RwLock<Decimal>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     results_history: RwLock<Vec<OptimizationResult>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     profitability_tracker: RwLock<ProfitabilityTracker>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     inventory: RwLock<HashMap<u64, i32>>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     ask_skew_multiplier: RwLock<Decimal>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     enabled: AtomicBool,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 248 |     last_optimization_ns: AtomicU64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     cycles_completed: AtomicU64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     http_client: reqwest::Client,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tuner.rs:290:12
[INFO] [stdout]     |
[INFO] [stdout] 257 | impl AutoTuner {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 290 |     pub fn process_signal(&self, signal: &TradeSignal, is_maker: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     pub fn process_trade_update(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn update_inventory(&self, token_id: u64, delta: i32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 337 |     fn check_inventory_health(&self, token_id: u64, inventory: i32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 |     pub fn get_ask_skew_multiplier(&self) -> Decimal {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     pub async fn run_optimization_cycle(&self) -> Option<OptimizationResult> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 486 |     pub async fn check_profitability_and_notify(&self, current_pnl: Decimal) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 509 |     async fn send_notification(&self, message: &str) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 539 |     pub fn get_best_spacing(&self) -> Decimal {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 544 |     pub fn get_stats(&self) -> TunerStats {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 561 |     pub fn set_enabled(&self, enabled: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 565 |     fn now_ns() -> u64 {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TunerStats` is never constructed
[INFO] [stdout]    --> src/tuner.rs:575:12
[INFO] [stdout]     |
[INFO] [stdout] 575 | pub struct TunerStats {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_tuner_loop` is never used
[INFO] [stdout]    --> src/tuner.rs:589:14
[INFO] [stdout]     |
[INFO] [stdout] 589 | pub async fn run_tuner_loop(tuner: Arc<AutoTuner>, mut shutdown_rx: mpsc::Receiver<()>) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `partial_fill` is never used
[INFO] [stdout]    --> src/backtester.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout]  68 | impl Order {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn partial_fill(&mut self, qty: Decimal) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `volume_ahead_of` and `cleanup` are never used
[INFO] [stdout]    --> src/backtester.rs:165:12
[INFO] [stdout]     |
[INFO] [stdout] 142 | impl PriceLevelQueue {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn volume_ahead_of(&self, priority_index: u32) -> Decimal {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub fn cleanup(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `price`, `qty`, `timestamp_ns`, and `is_partial` are never read
[INFO] [stdout]    --> src/backtester.rs:295:9
[INFO] [stdout]     |
[INFO] [stdout] 291 | pub struct FillResult {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 295 |     pub price: Decimal,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 296 |     /// Fill quantity
[INFO] [stdout] 297 |     pub qty: Decimal,
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 298 |     /// Fill timestamp
[INFO] [stdout] 299 |     pub timestamp_ns: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 300 |     /// Was this a partial fill?
[INFO] [stdout] 301 |     pub is_partial: bool,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FillResult` 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 `cancel_order`, `calculate_ticks_from_mid`, `cleanup`, and `stats` are never used
[INFO] [stdout]    --> src/backtester.rs:407:12
[INFO] [stdout]     |
[INFO] [stdout] 335 | impl Backtester {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 407 |     pub fn cancel_order(&mut self, order_id: u64) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 519 |     fn calculate_ticks_from_mid(&self, price: Decimal) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 545 |     pub fn cleanup(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 555 |     pub fn stats(&self) -> BacktesterStats {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BacktesterStats` is never constructed
[INFO] [stdout]    --> src/backtester.rs:572:12
[INFO] [stdout]     |
[INFO] [stdout] 572 | pub struct BacktesterStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Pending` is never constructed
[INFO] [stdout]   --> src/simulator.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub enum SimOrderState {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] 86 |     Pending = 0,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SimOrderState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `order_type` and `expected_profit_bps` are never read
[INFO] [stdout]    --> src/simulator.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub struct SimulatedOrder {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub order_type: OrderType,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub expected_profit_bps: i32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SimulatedOrder` 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: associated function `from_prepared` is never used
[INFO] [stdout]    --> src/simulator.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl SimulatedOrder {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn from_prepared(
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `market_id` and `timestamp_ns` are never read
[INFO] [stdout]    --> src/simulator.rs:290:9
[INFO] [stdout]     |
[INFO] [stdout] 288 | pub struct SimulatedFill {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] 289 |     pub order_id: u64,
[INFO] [stdout] 290 |     pub market_id: MarketId,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub timestamp_ns: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SimulatedFill` 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 `cancel_order` and `cancel_order_with_latency` are never used
[INFO] [stdout]    --> src/simulator.rs:409:12
[INFO] [stdout]     |
[INFO] [stdout] 324 | impl SimulatedOrderBook {
[INFO] [stdout]     | ----------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 409 |     pub fn cancel_order(&self, order_id: u64) -> Option<SimulatedOrder> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     pub fn cancel_order_with_latency(&self, order_id: u64) -> Result<Option<SimulatedOrder>, &'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `initial_balance_micro` is never read
[INFO] [stdout]    --> src/simulator.rs:543:5
[INFO] [stdout]     |
[INFO] [stdout] 532 | pub struct FillSimulator {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 543 |     initial_balance_micro: i64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/simulator.rs:670:12
[INFO] [stdout]     |
[INFO] [stdout] 586 | impl FillSimulator {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 670 |     pub fn track_prepared_order(&self, order: &PreparedOrder, is_maker: bool, expected_profit_bps: i32) -> Option<u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 695 |     pub fn update_daily_volume(&self, volume_usd: Decimal) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 700 |     pub fn update_mid_price(&self, market_id: &MarketId, mid_price: Decimal) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 706 |     pub fn cancel_order(&self, order_id: u64) -> Result<Option<SimulatedOrder>, &'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 920 |     pub fn active_order_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 924 |     pub fn get_stats(&self) -> SimulatorStats {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 948 |     pub fn get_fill_history(&self) -> Vec<SimulatedFill> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 952 |     pub fn set_enabled(&self, enabled: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 960 |     pub fn reset(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SimulatorStats` is never constructed
[INFO] [stdout]     --> src/simulator.rs:1010:12
[INFO] [stdout]      |
[INFO] [stdout] 1010 | pub struct SimulatorStats {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `win_rate` and `maker_ratio` are never used
[INFO] [stdout]     --> src/simulator.rs:1028:12
[INFO] [stdout]      |
[INFO] [stdout] 1027 | impl SimulatorStats {
[INFO] [stdout]      | ------------------- methods in this implementation
[INFO] [stdout] 1028 |     pub fn win_rate(&self) -> f64 {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1036 |     pub fn maker_ratio(&self) -> f64 {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `merge_on_chain`, `redeem_on_chain`, `build_eip1559_tx`, `wait_for_tx`, `query_token_balance`, and `deployed_capital` are never used
[INFO] [stdout]     --> src/arb.rs:2079:14
[INFO] [stdout]      |
[INFO] [stdout]  388 | impl ArbEngine {
[INFO] [stdout]      | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2079 |     async fn merge_on_chain(
[INFO] [stdout]      |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2174 |     async fn redeem_on_chain(
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2255 |     async fn build_eip1559_tx(
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2335 |     async fn wait_for_tx(
[INFO] [stdout]      |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2373 |     async fn query_token_balance(&self, token_id: &str) -> Result<f64, String> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2421 |     fn deployed_capital(&self) -> f64 {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `token_registry` is never read
[INFO] [stdout]    --> src/oracle_scalp.rs:123:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub struct OracleEngine {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 123 |     token_registry: Arc<TokenIdRegistry>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "576d303ab04042393c758f88c87219f10309cf19a72bd81c552511910182de1d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "576d303ab04042393c758f88c87219f10309cf19a72bd81c552511910182de1d", kill_on_drop: false }`
[INFO] [stdout] 576d303ab04042393c758f88c87219f10309cf19a72bd81c552511910182de1d
