[INFO] cloning repository https://github.com/0x0r10n/volens
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/0x0r10n/volens" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0x0r10n%2Fvolens", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0x0r10n%2Fvolens'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 49098acf0d8612df2fd56dee9ed7c69cf0429ae5
[INFO] checking 0x0r10n/volens against 656a9da186dacaf3bf8f7f7296a825d256cb4ae3 for pr-158915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0x0r10n%2Fvolens" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/0x0r10n/volens
[INFO] finished tweaking git repo https://github.com/0x0r10n/volens
[INFO] tweaked toml for git repo https://github.com/0x0r10n/volens written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/0x0r10n/volens on toolchain 656a9da186dacaf3bf8f7f7296a825d256cb4ae3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+656a9da186dacaf3bf8f7f7296a825d256cb4ae3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/0x0r10n/volens 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" "+656a9da186dacaf3bf8f7f7296a825d256cb4ae3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded futures-macro v0.3.33
[INFO] [stderr]   Downloaded futures-io v0.3.33
[INFO] [stderr]   Downloaded futures-sink v0.3.33
[INFO] [stderr]   Downloaded tokio-macros v2.7.1
[INFO] [stderr]   Downloaded solana-define-syscall v4.0.1
[INFO] [stderr]   Downloaded solana-hash v4.5.0
[INFO] [stderr]   Downloaded solana-sha256-hasher v3.1.0
[INFO] [stderr]   Downloaded async-trait v0.1.91
[INFO] [stderr]   Downloaded five8_core v1.0.0
[INFO] [stderr]   Downloaded futures-channel v0.3.33
[INFO] [stderr]   Downloaded futures-executor v0.3.33
[INFO] [stderr]   Downloaded borsh-derive v1.8.0
[INFO] [stderr]   Downloaded yellowstone-grpc-client v13.2.1
[INFO] [stderr]   Downloaded solana-program-option v3.1.0
[INFO] [stderr]   Downloaded solana-signer v3.0.1
[INFO] [stderr]   Downloaded solana-sdk-ids v3.1.0
[INFO] [stderr]   Downloaded solana-address v1.1.0
[INFO] [stderr]   Downloaded futures v0.3.33
[INFO] [stderr]   Downloaded solana-pubkey v3.0.0
[INFO] [stderr]   Downloaded solana-program-pack v3.1.0
[INFO] [stderr]   Downloaded solana-instruction v3.4.0
[INFO] [stderr]   Downloaded solana-instruction-error v2.4.0
[INFO] [stderr]   Downloaded solana-short-vec v3.2.2
[INFO] [stderr]   Downloaded solana-msg v3.1.0
[INFO] [stderr]   Downloaded cc v1.3.0
[INFO] [stderr]   Downloaded borsh v1.8.0
[INFO] [stderr]   Downloaded spl-associated-token-account-interface v2.0.0
[INFO] [stderr]   Downloaded solana-transaction-error v3.3.1
[INFO] [stderr]   Downloaded solana-signature v3.4.1
[INFO] [stderr]   Downloaded spl-token-interface v3.0.0
[INFO] [stderr]   Downloaded solana-transaction v4.1.5
[INFO] [stderr]   Downloaded solana-system-interface v3.2.0
[INFO] [stderr]   Downloaded solana-keypair v3.1.2
[INFO] [stderr]   Downloaded solana-seed-phrase v3.0.0
[INFO] [stderr]   Downloaded solana-compute-budget-interface v3.0.0
[INFO] [stderr]   Downloaded hashlink v0.9.1
[INFO] [stderr]   Downloaded solana-message v4.3.0
[INFO] [stderr]   Downloaded rusqlite v0.32.1
[INFO] [stderr]   Downloaded syn v3.0.0
[INFO] [stderr]   Downloaded regex-automata v0.4.16
[INFO] [stderr]   Downloaded tokio v1.53.0
[INFO] [stderr]   Downloaded sha2-const-stable v0.1.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] a7cce79bae44700815d8429315e9c1846330a9f80155ce16db1fdf863328f152
[INFO] running `Command { std: "docker" "start" "a7cce79bae44700815d8429315e9c1846330a9f80155ce16db1fdf863328f152", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a7cce79bae44700815d8429315e9c1846330a9f80155ce16db1fdf863328f152", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a7cce79bae44700815d8429315e9c1846330a9f80155ce16db1fdf863328f152" "/opt/rustwide/cargo-home/bin/cargo" "+656a9da186dacaf3bf8f7f7296a825d256cb4ae3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a7cce79bae44700815d8429315e9c1846330a9f80155ce16db1fdf863328f152", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "a7cce79bae44700815d8429315e9c1846330a9f80155ce16db1fdf863328f152" "/opt/rustwide/cargo-home/bin/cargo" "+656a9da186dacaf3bf8f7f7296a825d256cb4ae3" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking futures-core v0.3.33
[INFO] [stderr]     Checking futures-sink v0.3.33
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]     Checking http v1.4.2
[INFO] [stderr]     Checking smallvec v1.15.2
[INFO] [stderr]     Checking futures-io v0.3.33
[INFO] [stderr]     Checking futures-task v0.3.33
[INFO] [stderr]     Checking zeroize v1.9.0
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling jobserver v0.1.35
[INFO] [stderr]     Checking mio v1.2.2
[INFO] [stderr]     Checking socket2 v0.6.5
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]    Compiling tokio-macros v2.7.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling futures-macro v0.3.33
[INFO] [stderr]     Checking futures-channel v0.3.33
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling syn v3.0.0
[INFO] [stderr]     Checking rustls-pki-types v1.15.0
[INFO] [stderr]    Compiling anyhow v1.0.104
[INFO] [stderr]    Compiling cc v1.3.0
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]     Checking log v0.4.33
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling rustls v0.23.42
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling pulldown-cmark v0.13.4
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]     Checking typenum v1.20.1
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling bytes v1.12.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]     Checking tokio v1.53.0
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]     Checking futures-util v0.3.33
[INFO] [stderr]     Checking http-body v1.1.0
[INFO] [stderr]     Checking http-body-util v0.1.4
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling fixedbitset v0.5.7
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]     Checking zerofrom v0.1.8
[INFO] [stderr]     Checking yoke v0.8.3
[INFO] [stderr]    Compiling zerocopy v0.8.54
[INFO] [stderr]     Checking axum-core v0.5.6
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling regex-automata v0.4.16
[INFO] [stderr]    Compiling petgraph v0.8.3
[INFO] [stderr]    Compiling pulldown-cmark-to-cmark v22.0.0
[INFO] [stderr]    Compiling prost-derive v0.14.4
[INFO] [stderr]    Compiling pin-project-internal v1.1.13
[INFO] [stderr]    Compiling multimap v0.10.1
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking five8_core v1.0.0
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking matchit v0.8.4
[INFO] [stderr]     Checking rustls-native-certs v0.8.4
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]    Compiling tonic-build v0.14.6
[INFO] [stderr]    Compiling protoc-bin-vendored-linux-aarch_64 v3.2.0
[INFO] [stderr]    Compiling protoc-bin-vendored-linux-s390_64 v3.2.0
[INFO] [stderr]    Compiling protoc-bin-vendored-macos-x86_64 v3.2.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling protoc-bin-vendored-linux-ppcle_64 v3.2.0
[INFO] [stderr]    Compiling protoc-bin-vendored-macos-aarch_64 v3.2.0
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling protoc-bin-vendored-linux-x86_64 v3.2.0
[INFO] [stderr]    Compiling protoc-bin-vendored-linux-x86_32 v3.2.0
[INFO] [stderr]    Compiling protoc-bin-vendored-win32 v3.2.0
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]    Compiling protoc-bin-vendored v3.2.0
[INFO] [stderr]     Checking five8_const v1.0.0
[INFO] [stderr]     Checking pin-project v1.1.13
[INFO] [stderr]     Checking five8 v1.0.0
[INFO] [stderr]     Checking webpki-roots v1.0.9
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling thiserror v2.0.19
[INFO] [stderr]     Checking solana-atomic-u64 v3.0.1
[INFO] [stderr]    Compiling rustversion v1.0.23
[INFO] [stderr]     Checking solana-program-error v3.0.1
[INFO] [stderr]     Checking solana-sanitize v3.0.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking solana-address v2.6.1
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]     Checking solana-pubkey v4.2.0
[INFO] [stderr]     Checking futures-executor v0.3.33
[INFO] [stderr]     Checking sha1 v0.10.7
[INFO] [stderr]     Checking winnow v1.0.4
[INFO] [stderr]     Checking utf-8 v0.7.6
[INFO] [stderr]     Checking futures v0.3.33
[INFO] [stderr]     Checking webpki-roots v0.26.11
[INFO] [stderr]     Checking serde_spanned v1.1.1
[INFO] [stderr]     Checking toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]    Compiling prost v0.14.4
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]     Checking toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]     Checking arc-swap v1.9.2
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]    Compiling prost-types v0.14.4
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking thread_local v1.1.10
[INFO] [stderr]     Checking winnow v0.7.15
[INFO] [stderr]     Checking toml_writer v1.1.2+spec-1.1.0
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking bs58 v0.5.1
[INFO] [stderr]     Checking dotenvy v0.15.7
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]    Compiling async-trait v0.1.91
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror-impl v2.0.19
[INFO] [stderr]    Compiling prost-build v0.14.4
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]    Compiling tonic-prost-build v0.14.6
[INFO] [stderr]     Checking toml v0.9.12+spec-1.1.0
[INFO] [stderr]     Checking rustls-webpki v0.103.13
[INFO] [stderr]     Checking h2 v0.4.15
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]    Compiling yellowstone-grpc-proto v12.5.0
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking axum v0.8.9
[INFO] [stderr]     Checking tower-http v0.6.11
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.7
[INFO] [stderr]     Checking hyper v1.10.1
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking tungstenite v0.24.0
[INFO] [stderr]     Checking hyper-timeout v0.5.2
[INFO] [stderr]     Checking hyper-rustls v0.27.9
[INFO] [stderr]     Checking tokio-tungstenite v0.24.0
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking tonic v0.14.6
[INFO] [stderr]     Checking tonic-prost v0.14.6
[INFO] [stderr]     Checking tonic-health v0.14.6
[INFO] [stderr]     Checking yellowstone-grpc-client v13.2.1
[INFO] [stderr]     Checking volens v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `chat_id`
[INFO] [stdout]    --> src/bot.rs:606:44
[INFO] [stdout]     |
[INFO] [stdout] 606 |     async fn screen_for(&self, data: &str, chat_id: i64) -> Option<(String, serde_json::Value)> {
[INFO] [stdout]     |                                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chat_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool_auto_buy`
[INFO] [stdout]     --> src/detector.rs:1830:13
[INFO] [stdout]      |
[INFO] [stdout] 1830 |         let pool_auto_buy = self.cfg.sniper.pool_auto_buy;
[INFO] [stdout]      |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pool_auto_buy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chat_id`
[INFO] [stdout]    --> src/bot.rs:606:44
[INFO] [stdout]     |
[INFO] [stdout] 606 |     async fn screen_for(&self, data: &str, chat_id: i64) -> Option<(String, serde_json::Value)> {
[INFO] [stdout]     |                                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chat_id`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sniper`
[INFO] [stdout]    --> src/watcher.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 132 |     sniper: SniperHandle,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sniper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `send_html_with_keyboard` and `post_message_kb` are never used
[INFO] [stdout]    --> src/alerts.rs:57:18
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl Alerter {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  57 |     pub async fn send_html_with_keyboard(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     async fn post_message_kb(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `explain_failure` is never used
[INFO] [stdout]    --> src/alerts.rs:883:4
[INFO] [stdout]     |
[INFO] [stdout] 883 | fn explain_failure(raw: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `short_usd` is never used
[INFO] [stdout]     --> src/alerts.rs:1038:4
[INFO] [stdout]      |
[INFO] [stdout] 1038 | fn short_usd(v: f64) -> String {
[INFO] [stdout]      |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `identity` is never used
[INFO] [stdout]   --> src/alpha.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | impl Call {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn identity(&self) -> (String, i64) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `load` and `prune` are never used
[INFO] [stdout]    --> src/alpha.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | impl ScoreLedger {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn load(&self) -> Vec<Call> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn prune(&self, now: DateTime<Utc>, keep_secs: i64) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_calls` is never used
[INFO] [stdout]    --> src/alpha.rs:213:8
[INFO] [stdout]     |
[INFO] [stdout] 213 | pub fn merge_calls(archived: Vec<Call>, live: &[SignalRecord]) -> Vec<Call> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AlphaRules` is never constructed
[INFO] [stdout]    --> src/alpha.rs:252:12
[INFO] [stdout]     |
[INFO] [stdout] 252 | pub struct AlphaRules {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WalletPerf` is never constructed
[INFO] [stdout]    --> src/alpha.rs:308:12
[INFO] [stdout]     |
[INFO] [stdout] 308 | pub struct WalletPerf {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `hit_rate` and `qualifies` are never used
[INFO] [stdout]    --> src/alpha.rs:328:12
[INFO] [stdout]     |
[INFO] [stdout] 327 | impl WalletPerf {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] 328 |     pub fn hit_rate(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 336 |     pub fn qualifies(&self, rules: &AlphaRules, now: DateTime<Utc>) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wallet_performance` is never used
[INFO] [stdout]    --> src/alpha.rs:354:8
[INFO] [stdout]     |
[INFO] [stdout] 354 | pub fn wallet_performance(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `median` is never used
[INFO] [stdout]    --> src/alpha.rs:433:4
[INFO] [stdout]     |
[INFO] [stdout] 433 | fn median(mut v: Vec<f64>) -> f64 {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `qualifying_set` is never used
[INFO] [stdout]    --> src/alpha.rs:443:8
[INFO] [stdout]     |
[INFO] [stdout] 443 | pub fn qualifying_set(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fmt_usd_cap` is never used
[INFO] [stdout]     --> src/bot.rs:3602:4
[INFO] [stdout]      |
[INFO] [stdout] 3602 | fn fmt_usd_cap(v: f64) -> String {
[INFO] [stdout]      |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fmt_supply_pct` is never used
[INFO] [stdout]     --> src/bot.rs:3613:4
[INFO] [stdout]      |
[INFO] [stdout] 3613 | fn fmt_supply_pct(v: f64) -> String {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cmd` is never used
[INFO] [stdout]     --> src/bot.rs:3731:8
[INFO] [stdout]      |
[INFO] [stdout] 3730 | impl Tunable {
[INFO] [stdout]      | ------------ method in this implementation
[INFO] [stdout] 3731 |     fn cmd(self) -> &'static str {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `jupiter_base_url` is never read
[INFO] [stdout]    --> src/config.rs:120:9
[INFO] [stdout]     |
[INFO] [stdout]  45 | pub struct TrackedConfig {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub jupiter_base_url: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TrackedConfig` 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 `alert_on_all` is never read
[INFO] [stdout]    --> src/config.rs:334:9
[INFO] [stdout]     |
[INFO] [stdout] 316 | pub struct WatchConfig {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 334 |     pub alert_on_all: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WatchConfig` 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 `sol_in_window_from`, `sol_in_window`, and `buyers_in_window` are never used
[INFO] [stdout]    --> src/conviction.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl ConvictionTracker {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn sol_in_window_from(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn sol_in_window(&self, mint: &str, now: Instant) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn buyers_in_window(&self, mint: &str, now: Instant) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `prices` is never used
[INFO] [stdout]    --> src/detector.rs:501:12
[INFO] [stdout]     |
[INFO] [stdout] 338 | impl Detector {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 501 |     pub fn prices(&self) -> Arc<crate::prices::PriceIndex> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fraction_of` is never used
[INFO] [stdout]   --> src/jupiter.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn fraction_of(amount: u64, pct: u8) -> u64 {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Quote` is never constructed
[INFO] [stdout]   --> src/jupiter.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Quote {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `out_lamports`, `out_sol`, and `price_impact_pct` are never used
[INFO] [stdout]   --> src/jupiter.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl Quote {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 38 |     /// SOL out, in lamports (raw). None if the field is missing/unparseable.
[INFO] [stdout] 39 |     pub fn out_lamports(&self) -> Option<u64> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn out_sol(&self) -> Option<f64> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn price_impact_pct(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Jupiter` is never constructed
[INFO] [stdout]   --> src/jupiter.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct Jupiter {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `quote`, `sol_price_usd`, and `swap_tx` are never used
[INFO] [stdout]    --> src/jupiter.rs:74:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl Jupiter {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn new(base_url: &str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub async fn quote(
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub async fn sol_price_usd(&self) -> Result<f64> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub async fn swap_tx(&self, quote: &Quote, user_pubkey: &str) -> Result<String> {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cached_sol_price_usd` is never used
[INFO] [stdout]    --> src/jupiter.rs:289:14
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub async fn cached_sol_price_usd(base_url: &str) -> Option<f64> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_INTERVAL_MS` is never used
[INFO] [stdout]    --> src/jupiter.rs:352:7
[INFO] [stdout]     |
[INFO] [stdout] 352 | const MAX_INTERVAL_MS: u64 = 15_000;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `note_rate_limited` is never used
[INFO] [stdout]    --> src/jupiter.rs:369:8
[INFO] [stdout]     |
[INFO] [stdout] 369 | pub fn note_rate_limited() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `note_success` is never used
[INFO] [stdout]    --> src/jupiter.rs:387:4
[INFO] [stdout]     |
[INFO] [stdout] 387 | fn note_success() {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_interval_ms` is never used
[INFO] [stdout]    --> src/jupiter.rs:398:8
[INFO] [stdout]     |
[INFO] [stdout] 398 | pub fn current_interval_ms() -> u64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `throttle` is never used
[INFO] [stdout]    --> src/jupiter.rs:420:14
[INFO] [stdout]     |
[INFO] [stdout] 420 | pub async fn throttle() {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_tradable` is never used
[INFO] [stdout]    --> src/model.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl Dex {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn is_tradable(self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `window_buckets` is never used
[INFO] [stdout]   --> src/prices.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn window_buckets(window: Duration) -> u64 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXIT_OBS` is never used
[INFO] [stdout]    --> src/prices.rs:118:7
[INFO] [stdout]     |
[INFO] [stdout] 118 | const EXIT_OBS: usize = 3;
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `exit_price_sol`, `volumes_sol_in`, `volume_sol_in`, and `volume_sol` are never used
[INFO] [stdout]    --> src/prices.rs:515:12
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl PriceIndex {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 515 |     pub fn exit_price_sol(&self, mint: &str, max_age: Duration) -> Option<Priced> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 549 |     pub fn volumes_sol_in(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 568 |     pub fn volume_sol_in(&self, mint: &str, window: Duration) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 576 |     pub fn volume_sol(&self, mint: &str) -> Option<f64> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Watch` is never constructed
[INFO] [stdout]   --> src/rebound.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct Watch {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `expired` and `dead_long_enough` are never used
[INFO] [stdout]   --> src/rebound.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 90 | impl Watch {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 91 |     pub fn expired(&self, now: DateTime<Utc>, watch_secs: i64) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 99 |     pub fn dead_long_enough(&self, now: DateTime<Utc>, min_dead_secs: i64) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Skip` is never used
[INFO] [stdout]    --> src/rebound.rs:110:10
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub enum Skip {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReboundPool` is never constructed
[INFO] [stdout]    --> src/rebound.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub struct ReboundPool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/rebound.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 134 | impl ReboundPool {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] 135 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn from_watches(list: Vec<Watch>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn take_dirty(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn set_dirty(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn watches(&self) -> Vec<Watch> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn mints(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn observe(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn expire(&mut self, now: DateTime<Utc>, watch_secs: i64) -> usize {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn evaluate(
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 280 |     pub fn evaluate_alert(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     pub fn context(&self, mint: &str) -> Option<(Option<f64>, DateTime<Utc>)> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 315 |     pub fn mark_dead(&mut self, mint: &str, now: DateTime<Utc>) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     pub fn mark_alive(&mut self, mint: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     pub fn mark_alerted(&mut self, mint: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 347 |     pub fn set_alert_baseline(&mut self, mint: &str, price: Option<f64>, msg_id: Option<i64>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn announced(&self) -> Vec<Watch> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn set_reported(&mut self, mint: &str, multiple: f64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 370 |     pub fn mark_triggered(&mut self, mint: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_watches` is never used
[INFO] [stdout]    --> src/rebound.rs:380:8
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub fn load_watches(path: &str) -> Vec<Watch> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_watches` is never used
[INFO] [stdout]    --> src/rebound.rs:408:8
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub fn save_watches(path: &str, watches: &[Watch]) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `sol_balance` and `token_account_count` are never used
[INFO] [stdout]    --> src/rpc.rs:246:18
[INFO] [stdout]     |
[INFO] [stdout]  96 | impl RpcClient {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 246 |     pub async fn sol_balance(&self, address: &str) -> Option<f64> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     pub async fn token_account_count(&self, owner: &str) -> Option<usize> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `all`, `call_context`, `symbol_of`, and `retire` are never used
[INFO] [stdout]    --> src/signals.rs:161:12
[INFO] [stdout]     |
[INFO] [stdout] 134 | impl SignalStore {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn all(&self) -> Vec<SignalRecord> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn call_context(&self, mint: &str) -> Option<(DateTime<Utc>, f64)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn symbol_of(&self, mint: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn retire(&self, now: DateTime<Utc>, max_age_secs: i64) -> usize {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `quote_sol_value` is never used
[INFO] [stdout]    --> src/signals.rs:624:14
[INFO] [stdout]     |
[INFO] [stdout] 624 | pub async fn quote_sol_value(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Priced` and `Unavailable` are never constructed
[INFO] [stdout]    --> src/signals.rs:713:5
[INFO] [stdout]     |
[INFO] [stdout] 712 | enum CurvePrice {
[INFO] [stdout]     |      ---------- variants in this enum
[INFO] [stdout] 713 |     Priced(f64),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 717 |     Unavailable,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CurvePrice` 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 `in_groups` is never used
[INFO] [stdout]    --> src/wallets.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout]  79 | impl WalletBook {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn in_groups(&self, address: &str, allowed: &[String]) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `LpOutstanding` and `Unknown` are never constructed
[INFO] [stdout]   --> src/watcher.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub enum Verdict {
[INFO] [stdout]    |          ------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 37 |     LpOutstanding { liquidity: Option<f64> },
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 38 |     /// Nothing could be read.
[INFO] [stdout] 39 |     Unknown,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Verdict` 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_notable` is never used
[INFO] [stdout]   --> src/watcher.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Verdict {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn is_notable(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `evaluate` is never used
[INFO] [stdout]   --> src/watcher.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn evaluate(
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pool_auto_buy`
[INFO] [stdout]     --> src/detector.rs:1830:13
[INFO] [stdout]      |
[INFO] [stdout] 1830 |         let pool_auto_buy = self.cfg.sniper.pool_auto_buy;
[INFO] [stdout]      |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pool_auto_buy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sniper`
[INFO] [stdout]    --> src/watcher.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 132 |     sniper: SniperHandle,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_sniper`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `send_html_with_keyboard` and `post_message_kb` are never used
[INFO] [stdout]    --> src/alerts.rs:57:18
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl Alerter {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  57 |     pub async fn send_html_with_keyboard(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     async fn post_message_kb(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `short_usd` is never used
[INFO] [stdout]     --> src/alerts.rs:1038:4
[INFO] [stdout]      |
[INFO] [stdout] 1038 | fn short_usd(v: f64) -> String {
[INFO] [stdout]      |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `load` and `prune` are never used
[INFO] [stdout]    --> src/alpha.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 116 | impl ScoreLedger {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn load(&self) -> Vec<Call> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn prune(&self, now: DateTime<Utc>, keep_secs: i64) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fmt_usd_cap` is never used
[INFO] [stdout]     --> src/bot.rs:3602:4
[INFO] [stdout]      |
[INFO] [stdout] 3602 | fn fmt_usd_cap(v: f64) -> String {
[INFO] [stdout]      |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fmt_supply_pct` is never used
[INFO] [stdout]     --> src/bot.rs:3613:4
[INFO] [stdout]      |
[INFO] [stdout] 3613 | fn fmt_supply_pct(v: f64) -> String {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `cmd` is never used
[INFO] [stdout]     --> src/bot.rs:3731:8
[INFO] [stdout]      |
[INFO] [stdout] 3730 | impl Tunable {
[INFO] [stdout]      | ------------ method in this implementation
[INFO] [stdout] 3731 |     fn cmd(self) -> &'static str {
[INFO] [stdout]      |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `alert_on_all` is never read
[INFO] [stdout]    --> src/config.rs:334:9
[INFO] [stdout]     |
[INFO] [stdout] 316 | pub struct WatchConfig {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 334 |     pub alert_on_all: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WatchConfig` 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 `prices` is never used
[INFO] [stdout]    --> src/detector.rs:501:12
[INFO] [stdout]     |
[INFO] [stdout] 338 | impl Detector {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 501 |     pub fn prices(&self) -> Arc<crate::prices::PriceIndex> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `swap_tx` is never used
[INFO] [stdout]    --> src/jupiter.rs:164:18
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl Jupiter {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub async fn swap_tx(&self, quote: &Quote, user_pubkey: &str) -> Result<String> {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_tradable` is never used
[INFO] [stdout]    --> src/model.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl Dex {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn is_tradable(self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `volumes_sol_in` is never used
[INFO] [stdout]    --> src/prices.rs:549:12
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl PriceIndex {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 549 |     pub fn volumes_sol_in(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mints`, `set_alert_baseline`, `announced`, and `set_reported` are never used
[INFO] [stdout]    --> src/rebound.rs:169:12
[INFO] [stdout]     |
[INFO] [stdout] 134 | impl ReboundPool {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn mints(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 347 |     pub fn set_alert_baseline(&mut self, mint: &str, price: Option<f64>, msg_id: Option<i64>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn announced(&self) -> Vec<Watch> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 |     pub fn set_reported(&mut self, mint: &str, multiple: f64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `all`, `call_context`, and `symbol_of` are never used
[INFO] [stdout]    --> src/signals.rs:161:12
[INFO] [stdout]     |
[INFO] [stdout] 134 | impl SignalStore {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 161 |     pub fn all(&self) -> Vec<SignalRecord> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub fn call_context(&self, mint: &str) -> Option<(DateTime<Utc>, f64)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn symbol_of(&self, mint: &str) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Priced` and `Unavailable` are never constructed
[INFO] [stdout]    --> src/signals.rs:713:5
[INFO] [stdout]     |
[INFO] [stdout] 712 | enum CurvePrice {
[INFO] [stdout]     |      ---------- variants in this enum
[INFO] [stdout] 713 |     Priced(f64),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 717 |     Unavailable,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CurvePrice` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 26s
[INFO] running `Command { std: "docker" "inspect" "a7cce79bae44700815d8429315e9c1846330a9f80155ce16db1fdf863328f152", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a7cce79bae44700815d8429315e9c1846330a9f80155ce16db1fdf863328f152", kill_on_drop: false }`
[INFO] [stdout] a7cce79bae44700815d8429315e9c1846330a9f80155ce16db1fdf863328f152
