[INFO] cloning repository https://github.com/yigitkader/liquid-bot
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/yigitkader/liquid-bot" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyigitkader%2Fliquid-bot", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyigitkader%2Fliquid-bot'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 64b0706c1988dfa26d5de96712b7573b17b4d86b
[INFO] checking yigitkader/liquid-bot/64b0706c1988dfa26d5de96712b7573b17b4d86b against master#3f6250a7bb79e600d9036bbc7c8f65af43933643 for pr-147859
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyigitkader%2Fliquid-bot" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/yigitkader/liquid-bot
[INFO] finished tweaking git repo https://github.com/yigitkader/liquid-bot
[INFO] tweaked toml for git repo https://github.com/yigitkader/liquid-bot written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/yigitkader/liquid-bot 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/yigitkader/liquid-bot 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]     Updating git repository `https://github.com/switchboard-xyz/solana-sdk`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded spl-associated-token-account v4.0.0
[INFO] [stderr]   Downloaded spl-type-length-value v0.5.0
[INFO] [stderr]   Downloaded spl-pod v0.3.1
[INFO] [stderr]   Downloaded spl-program-error v0.5.0
[INFO] [stderr]   Downloaded solana-sanitize v3.0.1
[INFO] [stderr]   Downloaded solana-svm-feature-set v2.3.13
[INFO] [stderr]   Downloaded spl-generic-token v1.0.1
[INFO] [stderr]   Downloaded switchboard-common v0.11.6
[INFO] [stderr]   Downloaded switchboard-utils v0.9.2
[INFO] [stderr]   Downloaded kaigan v0.2.6
[INFO] [stderr]   Downloaded spl-token-metadata-interface v0.4.0
[INFO] [stderr]   Downloaded solana-msg v3.0.0
[INFO] [stderr]   Downloaded solana-pubkey v3.0.0
[INFO] [stderr]   Downloaded solana-define-syscall v4.0.1
[INFO] [stderr]   Downloaded solana-program-error v3.0.0
[INFO] [stderr]   Downloaded faster-hex v0.10.0
[INFO] [stderr]   Downloaded solana-address v1.1.0
[INFO] [stderr]   Downloaded solana-transaction v2.2.3
[INFO] [stderr]   Downloaded five8 v1.0.0
[INFO] [stderr]   Downloaded solana-atomic-u64 v3.0.0
[INFO] [stderr]   Downloaded solana-compute-budget-interface v2.2.2
[INFO] [stderr]   Downloaded solana-genesis-config v2.3.0
[INFO] [stderr]   Downloaded solana-define-syscall v3.0.0
[INFO] [stderr]   Downloaded solana-address v2.0.0
[INFO] [stderr]   Downloaded simple_pyth_client_rs v0.1.0
[INFO] [stderr]   Downloaded pyth-sdk v0.8.0
[INFO] [stderr]   Downloaded solana-config-program-client v0.0.2
[INFO] [stderr]   Downloaded solana-rpc-client v2.3.13
[INFO] [stderr]   Downloaded solana-streamer v2.3.13
[INFO] [stderr]   Downloaded spl-token-2022 v4.0.0
[INFO] [stderr]   Downloaded anchor-client v0.31.1
[INFO] [stderr]   Downloaded solana-perf v2.3.13
[INFO] [stderr]   Downloaded solana-transaction-metrics-tracker v2.3.13
[INFO] [stderr]   Downloaded solana-client v2.3.13
[INFO] [stderr]   Downloaded spl-token v6.0.0
[INFO] [stderr]   Downloaded pyth-sdk-solana v0.10.6
[INFO] [stderr]   Downloaded solana-quic-client v2.3.13
[INFO] [stderr]   Downloaded solana-rpc-client-nonce-utils v2.3.13
[INFO] [stderr]   Downloaded solana-rpc-client-types v2.3.13
[INFO] [stderr]   Downloaded solana-rpc-client-api v2.3.13
[INFO] [stderr]   Downloaded solana-tpu-client v2.3.13
[INFO] [stderr]   Downloaded solana-net-utils v2.3.13
[INFO] [stderr]   Downloaded fastbloom v0.14.0
[INFO] [stderr]   Downloaded solana-metrics v2.3.13
[INFO] [stderr]   Downloaded solana-udp-client v2.3.13
[INFO] [stderr]   Downloaded solana-sdk v2.3.1
[INFO] [stderr]   Downloaded agave-feature-set v2.3.13
[INFO] [stderr]   Downloaded solana-account-decoder-client-types v2.3.13
[INFO] [stderr]   Downloaded solana-transaction-context v2.3.13
[INFO] [stderr]   Downloaded solana-transaction-status-client-types v2.3.13
[INFO] [stderr]   Downloaded solana-secp256k1-program v2.2.3
[INFO] [stderr]   Downloaded solana-system-interface v2.0.0
[INFO] [stderr]   Downloaded solana-account-decoder v2.3.13
[INFO] [stderr]   Downloaded flate2 v1.1.7
[INFO] [stderr]   Downloaded solana-thin-client v2.3.13
[INFO] [stderr]   Downloaded solana-pubsub-client v2.3.13
[INFO] [stderr]   Downloaded reqwest-middleware v0.4.2
[INFO] [stderr]   Downloaded spl-token-group-interface v0.3.0
[INFO] [stderr]   Downloaded toml_edit v0.23.8
[INFO] [stderr]   Downloaded solana-rent-collector v2.3.0
[INFO] [stderr]   Downloaded solana-version v2.3.13
[INFO] [stderr]   Downloaded solana-quic-definitions v2.3.1
[INFO] [stderr]   Downloaded spl-memo v5.0.0
[INFO] [stderr]   Downloaded solana-secp256r1-program v2.2.4
[INFO] [stderr]   Downloaded solana-keypair v2.2.3
[INFO] [stderr]   Downloaded solana-commitment-config v3.1.0
[INFO] [stderr]   Downloaded five8_const v1.0.0
[INFO] [stderr]   Downloaded solana-hash v4.0.1
[INFO] [stderr]   Downloaded solana-measure v2.3.13
[INFO] [stderr]   Downloaded solana-tls-utils v2.3.13
[INFO] [stderr]   Downloaded solana-connection-cache v2.3.13
[INFO] [stderr]   Downloaded solana-precompile-error v2.2.2
[INFO] [stderr]   Downloaded solana-rayon-threadlimit v2.3.13
[INFO] [stderr]   Downloaded solana-sha256-hasher v3.1.0
[INFO] [stderr]   Downloaded spl-tlv-account-resolution v0.7.0
[INFO] [stderr]   Downloaded solana-ed25519-program v2.2.3
[INFO] [stderr]   Downloaded spl-transfer-hook-interface v0.7.0
[INFO] [stderr]   Downloaded spl-discriminator v0.3.0
[INFO] [stderr]   Downloaded solana-fee-structure v2.3.0
[INFO] [stderr]   Downloaded pbjson v0.7.0
[INFO] [stderr]   Downloaded solana-zk-token-sdk v2.3.13
[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] 2a75ee47184dadf094de9d2232ff41ee3c3a500f3c36b694f7baba0fd35d33c4
[INFO] running `Command { std: "docker" "start" "-a" "2a75ee47184dadf094de9d2232ff41ee3c3a500f3c36b694f7baba0fd35d33c4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2a75ee47184dadf094de9d2232ff41ee3c3a500f3c36b694f7baba0fd35d33c4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2a75ee47184dadf094de9d2232ff41ee3c3a500f3c36b694f7baba0fd35d33c4", kill_on_drop: false }`
[INFO] [stdout] 2a75ee47184dadf094de9d2232ff41ee3c3a500f3c36b694f7baba0fd35d33c4
[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] 65f6ee52f4a4c0a8d69a99275c7153e3c1682df6d1e8fcefac61488e274bea93
[INFO] running `Command { std: "docker" "start" "-a" "65f6ee52f4a4c0a8d69a99275c7153e3c1682df6d1e8fcefac61488e274bea93", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling borsh v1.6.0
[INFO] [stderr]     Checking five8 v0.2.1
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]    Compiling bs58 v0.5.1
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking sha2 v0.9.9
[INFO] [stderr]     Checking solana-program-memory v2.3.1
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]    Compiling libsecp256k1-core v0.2.2
[INFO] [stderr]     Checking qstring v0.7.2
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]     Checking serde_bytes v0.11.19
[INFO] [stderr]     Checking solana-derivation-path v2.2.1
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]     Checking crypto-mac v0.8.0
[INFO] [stderr]     Checking hmac v0.8.1
[INFO] [stderr]    Compiling cc v1.2.48
[INFO] [stderr]    Compiling libsecp256k1-gen-ecmult v0.2.1
[INFO] [stderr]    Compiling libsecp256k1-gen-genmult v0.2.1
[INFO] [stderr]     Checking solana-seed-derivable v2.2.1
[INFO] [stderr]    Compiling libsecp256k1 v0.6.0
[INFO] [stderr]     Checking hmac-drbg v0.3.0
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]    Compiling toml_parser v1.0.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]    Compiling toml_edit v0.23.8
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking getrandom v0.1.16
[INFO] [stderr]     Checking sha3 v0.10.8
[INFO] [stderr]     Checking hashbrown v0.13.2
[INFO] [stderr]     Checking signal-hook-registry v1.4.7
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling blake3 v1.8.2
[INFO] [stderr]     Checking socket2 v0.6.1
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]    Compiling proc-macro-crate v3.4.0
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking pbkdf2 v0.11.0
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]     Checking tracing-core v0.1.35
[INFO] [stderr]     Checking solana-seed-phrase v2.2.1
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]    Compiling rustls v0.23.35
[INFO] [stderr]     Checking tracing v0.1.43
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]     Checking polyval v0.6.2
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking solana-native-token v2.3.0
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]     Checking brotli v8.0.2
[INFO] [stderr]     Checking flate2 v1.1.7
[INFO] [stderr]     Checking solana-precompile-error v2.2.2
[INFO] [stderr]     Checking compression-core v0.4.31
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]     Checking iri-string v0.7.9
[INFO] [stderr]    Compiling borsh-derive-internal v0.10.4
[INFO] [stderr]    Compiling borsh-schema-derive-internal v0.10.4
[INFO] [stderr]     Checking backtrace v0.3.76
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.21.3
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling time-core v0.1.6
[INFO] [stderr]    Compiling solana-version v2.3.13
[INFO] [stderr]     Checking solana-svm-feature-set v2.3.13
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]    Compiling borsh-derive v1.6.0
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]    Compiling solana-sdk-macro v2.2.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]     Checking curve25519-dalek v3.2.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking bytemuck v1.24.0
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]     Checking thiserror v2.0.17
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking rustls-pki-types v1.13.1
[INFO] [stderr]     Checking merlin v3.0.0
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking solana-hash v2.3.0
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]    Compiling toml v0.5.11
[INFO] [stderr]     Checking solana-sha256-hasher v2.3.0
[INFO] [stderr]     Checking ed25519-dalek v1.0.1
[INFO] [stderr]     Checking serde-big-array v0.5.1
[INFO] [stderr]     Checking bytes v1.11.0
[INFO] [stderr]     Checking bv v0.11.1
[INFO] [stderr]     Checking solana-signature v2.3.0
[INFO] [stderr]     Checking solana-fee-calculator v2.2.1
[INFO] [stderr]     Checking solana-short-vec v2.2.1
[INFO] [stderr]     Checking tokio v1.48.0
[INFO] [stderr]    Compiling proc-macro-crate v0.1.5
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking solana-serde-varint v2.2.2
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]    Compiling borsh-derive v0.10.4
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking borsh v0.10.4
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking rustls-webpki v0.103.8
[INFO] [stderr]     Checking solana-pubkey v2.4.0
[INFO] [stderr]     Checking aes-gcm-siv v0.11.1
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking solana-instruction v2.3.3
[INFO] [stderr]     Checking solana-sdk-ids v2.2.1
[INFO] [stderr]     Checking solana-transaction-error v2.2.1
[INFO] [stderr]     Checking solana-sysvar-id v2.2.1
[INFO] [stderr]     Checking solana-program-error v2.2.2
[INFO] [stderr]     Checking solana-system-interface v1.0.0
[INFO] [stderr]     Checking solana-epoch-schedule v2.2.1
[INFO] [stderr]     Checking solana-clock v2.2.2
[INFO] [stderr]     Checking solana-serialize-utils v2.2.1
[INFO] [stderr]     Checking solana-signer v2.2.1
[INFO] [stderr]     Checking solana-slot-hashes v2.2.1
[INFO] [stderr]     Checking solana-account-info v2.3.0
[INFO] [stderr]     Checking solana-rent v2.2.1
[INFO] [stderr]     Checking solana-last-restart-slot v2.2.1
[INFO] [stderr]     Checking solana-epoch-rewards v2.2.1
[INFO] [stderr]     Checking solana-slot-history v2.2.1
[INFO] [stderr]     Checking solana-bincode v2.2.1
[INFO] [stderr]     Checking solana-cpi v2.2.1
[INFO] [stderr]     Checking solana-program-entrypoint v2.3.0
[INFO] [stderr]     Checking solana-instructions-sysvar v2.2.2
[INFO] [stderr]     Checking solana-stake-interface v1.2.1
[INFO] [stderr]     Checking icu_properties v2.1.1
[INFO] [stderr]     Checking solana-message v2.4.0
[INFO] [stderr]     Checking solana-vote-interface v2.2.6
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking solana-nonce v2.2.1
[INFO] [stderr]     Checking solana-sysvar v2.3.0
[INFO] [stderr]     Checking solana-program-pack v2.2.1
[INFO] [stderr]     Checking solana-borsh v2.2.1
[INFO] [stderr]     Checking solana-address-lookup-table-interface v2.2.2
[INFO] [stderr]     Checking solana-feature-set v2.2.5
[INFO] [stderr]     Checking solana-account v2.2.1
[INFO] [stderr]     Checking solana-keccak-hasher v2.2.1
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking solana-secp256k1-recover v2.2.1
[INFO] [stderr]     Checking solana-example-mocks v2.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking solana-feature-gate-interface v2.2.2
[INFO] [stderr]     Checking solana-loader-v4-interface v2.2.1
[INFO] [stderr]     Checking solana-loader-v3-interface v5.0.0
[INFO] [stderr]     Checking solana-loader-v2-interface v2.2.1
[INFO] [stderr]     Checking solana-stable-layout v2.2.1
[INFO] [stderr]     Checking solana-blake3-hasher v2.2.1
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking url v2.5.7
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking webpki-roots v1.0.4
[INFO] [stderr]     Checking solana-program v2.3.0
[INFO] [stderr]    Compiling spl-discriminator-syn v0.2.1
[INFO] [stderr]     Checking compression-codecs v0.4.33
[INFO] [stderr]     Checking solana-secp256k1-program v2.2.3
[INFO] [stderr]     Checking solana-ed25519-program v2.2.3
[INFO] [stderr]     Checking solana-secp256r1-program v2.2.4
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking ed25519-dalek-bip32 v0.2.0
[INFO] [stderr]    Compiling spl-discriminator-derive v0.2.0
[INFO] [stderr]     Checking tokio-util v0.7.17
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking async-compression v0.4.34
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking solana-keypair v2.2.3
[INFO] [stderr]     Checking solana-precompiles v2.2.2
[INFO] [stderr]     Checking solana-curve25519 v2.3.13
[INFO] [stderr]     Checking solana-transaction v2.2.3
[INFO] [stderr]     Checking solana-cluster-type v2.2.1
[INFO] [stderr]     Checking solana-zk-sdk v2.3.13
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]     Checking tower-http v0.6.7
[INFO] [stderr]     Checking solana-reward-info v2.2.1
[INFO] [stderr]     Checking h2 v0.4.12
[INFO] [stderr]     Checking solana-inflation v2.2.1
[INFO] [stderr]     Checking solana-commitment-config v2.2.1
[INFO] [stderr]    Compiling darling_macro v0.21.3
[INFO] [stderr]     Checking solana-transaction-context v2.3.13
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking agave-feature-set v2.3.13
[INFO] [stderr]    Compiling darling v0.21.3
[INFO] [stderr]     Checking spl-generic-token v1.0.1
[INFO] [stderr]    Compiling serde_with_macros v3.16.1
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking deranged v0.5.5
[INFO] [stderr]    Compiling time-macros v0.2.24
[INFO] [stderr]     Checking gethostname v0.2.3
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]     Checking serde_with v3.16.1
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking spl-pod v0.5.1
[INFO] [stderr]     Checking rusticata-macros v4.1.0
[INFO] [stderr]     Checking time v0.3.44
[INFO] [stderr]    Compiling anchor-syn v0.31.1
[INFO] [stderr]    Compiling asn1-rs-derive v0.4.0
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling cfg_eval v0.1.2
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]    Compiling num_enum_derive v0.7.5
[INFO] [stderr]     Checking solana-account-decoder-client-types v2.3.13
[INFO] [stderr]    Compiling asn1-rs-impl v0.1.0
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking asn1-rs v0.5.2
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking solana-packet v2.2.1
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]     Checking num_enum v0.7.5
[INFO] [stderr]     Checking solana-transaction-status-client-types v2.3.13
[INFO] [stderr]    Compiling spl-program-error-derive v0.4.1
[INFO] [stderr]     Checking tokio-rustls v0.24.1
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking spl-program-error v0.5.0
[INFO] [stderr]     Checking solana-zk-token-sdk v2.3.13
[INFO] [stderr]     Checking jsonrpc-core v18.0.0
[INFO] [stderr]     Checking hyper-util v0.1.19
[INFO] [stderr]     Checking spl-discriminator v0.4.1
[INFO] [stderr]     Checking rustls-native-certs v0.8.2
[INFO] [stderr]     Checking solana-serde v2.2.1
[INFO] [stderr]     Checking solana-rpc-client-types v2.3.13
[INFO] [stderr]     Checking solana-epoch-info v2.2.1
[INFO] [stderr]    Compiling dlopen2_derive v0.3.0
[INFO] [stderr]    Compiling ark-serialize-derive v0.4.2
[INFO] [stderr]     Checking ark-std v0.4.0
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]    Compiling quinn-udp v0.5.14
[INFO] [stderr]    Compiling solana-perf v2.3.13
[INFO] [stderr]     Checking solana-measure v2.3.13
[INFO] [stderr]     Checking unicode-width v0.2.2
[INFO] [stderr]     Checking fastbloom v0.14.0
[INFO] [stderr]     Checking ark-serialize v0.4.2
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]     Checking dlopen2 v0.5.0
[INFO] [stderr]    Compiling ark-ff-macros v0.4.2
[INFO] [stderr]     Checking solana-rayon-threadlimit v2.3.13
[INFO] [stderr]     Checking spl-pod v0.3.1
[INFO] [stderr]     Checking rustls-platform-verifier v0.6.2
[INFO] [stderr]     Checking oid-registry v0.6.1
[INFO] [stderr]     Checking der-parser v8.2.0
[INFO] [stderr]     Checking solana-quic-definitions v2.3.1
[INFO] [stderr]     Checking spl-discriminator v0.3.0
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]    Compiling ark-ff-asm v0.4.2
[INFO] [stderr]     Checking caps v0.5.6
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking raw-cpuid v11.6.0
[INFO] [stderr]    Compiling quinn v0.11.9
[INFO] [stderr]     Checking humantime v2.3.0
[INFO] [stderr]     Checking reqwest v0.12.24
[INFO] [stderr]     Checking hashbrown v0.15.2
[INFO] [stderr]     Checking quinn-proto v0.11.13
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]     Checking x509-parser v0.14.0
[INFO] [stderr]     Checking dashmap v5.5.3
[INFO] [stderr]     Checking solana-net-utils v2.3.13
[INFO] [stderr]     Checking spl-type-length-value v0.8.0
[INFO] [stderr]     Checking webpki-roots v0.24.0
[INFO] [stderr]    Compiling spl-program-error-derive v0.5.0
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking solana-metrics v2.3.13
[INFO] [stderr]     Checking reqwest-middleware v0.4.2
[INFO] [stderr]     Checking spinning_top v0.3.0
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]     Checking tungstenite v0.20.1
[INFO] [stderr]     Checking solana-connection-cache v2.3.13
[INFO] [stderr]    Compiling pest v2.8.4
[INFO] [stderr]     Checking spl-program-error v0.7.0
[INFO] [stderr]     Checking solana-rpc-client-api v2.3.13
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking solana-rpc-client v2.3.13
[INFO] [stderr]     Checking ark-ff v0.4.2
[INFO] [stderr]     Checking env_logger v0.9.3
[INFO] [stderr]     Checking quanta v0.12.6
[INFO] [stderr]     Checking governor v0.6.3
[INFO] [stderr]     Checking solana-transaction-metrics-tracker v2.3.13
[INFO] [stderr]     Checking solana-tls-utils v2.3.13
[INFO] [stderr]     Checking solana-security-txt v1.1.2
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking spl-type-length-value v0.5.0
[INFO] [stderr]     Checking solana-client-traits v2.2.1
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking tokio-stream v0.1.17
[INFO] [stderr]     Checking solana-hard-forks v2.2.1
[INFO] [stderr]    Compiling libsecp256k1-core v0.3.0
[INFO] [stderr]     Checking solana-shred-version v2.2.1
[INFO] [stderr]    Compiling pest_meta v2.8.4
[INFO] [stderr]     Checking solana-logger v2.3.1
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking tokio-tungstenite v0.20.1
[INFO] [stderr]     Checking spl-tlv-account-resolution v0.10.0
[INFO] [stderr]     Checking spl-token-confidential-transfer-proof-extraction v0.3.0
[INFO] [stderr]    Compiling anchor-lang-idl-spec v0.1.0
[INFO] [stderr]     Checking hex v0.4.3
[INFO] [stderr]     Checking solana-poh-config v2.2.1
[INFO] [stderr]     Checking memmap2 v0.5.10
[INFO] [stderr]     Checking solana-hash v4.0.1
[INFO] [stderr]     Checking solana-sha256-hasher v3.1.0
[INFO] [stderr]     Checking solana-genesis-config v2.3.0
[INFO] [stderr]    Compiling libsecp256k1-gen-ecmult v0.3.0
[INFO] [stderr]    Compiling libsecp256k1-gen-genmult v0.3.0
[INFO] [stderr]    Compiling pest_generator v2.8.4
[INFO] [stderr]     Checking solana-pubsub-client v2.3.13
[INFO] [stderr]     Checking spl-transfer-hook-interface v0.10.0
[INFO] [stderr]     Checking solana-streamer v2.3.13
[INFO] [stderr]     Checking spl-elgamal-registry v0.2.0
[INFO] [stderr]    Compiling anchor-lang-idl v0.1.2
[INFO] [stderr]     Checking async-lock v3.4.1
[INFO] [stderr]     Checking spl-tlv-account-resolution v0.7.0
[INFO] [stderr]     Checking spl-token-metadata-interface v0.7.0
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]     Checking spl-token-group-interface v0.6.0
[INFO] [stderr]     Checking spl-token v8.0.0
[INFO] [stderr]     Checking spl-token-confidential-transfer-ciphertext-arithmetic v0.3.1
[INFO] [stderr]     Checking spl-token-confidential-transfer-proof-generation v0.4.1
[INFO] [stderr]     Checking spl-memo v6.0.0
[INFO] [stderr]     Checking kaigan v0.2.6
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]     Checking five8 v1.0.0
[INFO] [stderr]     Checking five8_const v1.0.0
[INFO] [stderr]     Checking solana-atomic-u64 v3.0.0
[INFO] [stderr]     Checking solana-program-error v3.0.0
[INFO] [stderr]     Checking solana-define-syscall v2.3.0
[INFO] [stderr]    Compiling schemars v0.8.22
[INFO] [stderr]    Compiling rust_decimal v1.39.0
[INFO] [stderr]     Checking solana-sanitize v3.0.1
[INFO] [stderr]     Checking solana-epoch-rewards-hasher v2.2.1
[INFO] [stderr]     Checking solana-address v2.0.0
[INFO] [stderr]    Compiling heapless v0.8.0
[INFO] [stderr]     Checking spl-token-2022 v8.0.1
[INFO] [stderr]     Checking solana-config-program-client v0.0.2
[INFO] [stderr]    Compiling schemars_derive v0.8.22
[INFO] [stderr]    Compiling pest_derive v2.8.4
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking solana-quic-client v2.3.13
[INFO] [stderr]    Compiling prost-derive v0.12.6
[INFO] [stderr]    Compiling anchor-attribute-program v0.31.1
[INFO] [stderr]     Checking spl-transfer-hook-interface v0.7.0
[INFO] [stderr]     Checking solana-udp-client v2.3.13
[INFO] [stderr]     Checking solana-tpu-client v2.3.13
[INFO] [stderr]     Checking solana-rent-collector v2.3.0
[INFO] [stderr]    Compiling libsecp256k1 v0.7.2
[INFO] [stderr]     Checking solana-rpc-client-nonce-utils v2.3.13
[INFO] [stderr]     Checking solana-thin-client v2.3.13
[INFO] [stderr]     Checking ark-poly v0.4.2
[INFO] [stderr]     Checking spl-token-metadata-interface v0.4.0
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling anchor-derive-serde v0.31.1
[INFO] [stderr]    Compiling anchor-attribute-account v0.31.1
[INFO] [stderr]    Compiling anchor-attribute-error v0.31.1
[INFO] [stderr]    Compiling anchor-attribute-access-control v0.31.1
[INFO] [stderr]    Compiling anchor-attribute-constant v0.31.1
[INFO] [stderr]    Compiling anchor-attribute-event v0.31.1
[INFO] [stderr]    Compiling anchor-derive-accounts v0.31.1
[INFO] [stderr]     Checking spl-token-group-interface v0.3.0
[INFO] [stderr]     Checking solana-offchain-message v2.2.1
[INFO] [stderr]     Checking spl-token v6.0.0
[INFO] [stderr]     Checking Inflector v0.11.4
[INFO] [stderr]     Checking ark-ec v0.4.2
[INFO] [stderr]     Checking solana-rent-debits v2.2.1
[INFO] [stderr]     Checking solana-system-transaction v2.2.1
[INFO] [stderr]     Checking spl-memo v5.0.0
[INFO] [stderr]     Checking solana-reserved-account-keys v2.2.2
[INFO] [stderr]     Checking solana-nonce-account v2.2.1
[INFO] [stderr]     Checking solana-fee-structure v2.3.0
[INFO] [stderr]     Checking solana-presigner v2.2.1
[INFO] [stderr]     Checking solana-compute-budget-interface v2.2.2
[INFO] [stderr]     Checking envy v0.4.2
[INFO] [stderr]    Compiling anchor-derive-space v0.31.1
[INFO] [stderr]     Checking hash32 v0.3.1
[INFO] [stderr]     Checking switchboard-common v0.11.6
[INFO] [stderr]     Checking spl-token-2022 v4.0.0
[INFO] [stderr]     Checking solana-account-decoder v2.3.13
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking hyper-rustls v0.24.2
[INFO] [stderr]     Checking anchor-lang v0.31.1
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking prost v0.12.6
[INFO] [stderr]    Compiling prost-derive v0.13.5
[INFO] [stderr]     Checking solana-client v2.3.13
[INFO] [stderr]     Checking jsonpath-rust v0.3.5
[INFO] [stderr]     Checking solana-address v1.1.0
[INFO] [stderr]     Checking ark-bn254 v0.4.0
[INFO] [stderr]     Checking solana-pubkey v3.0.0
[INFO] [stderr]     Checking pyth-sdk v0.8.0
[INFO] [stderr]     Checking faster-hex v0.10.0
[INFO] [stderr]     Checking pbjson v0.7.0
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]     Checking switchboard-utils v0.9.2
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]     Checking solana-bn254 v2.2.2
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking spl-associated-token-account v4.0.0
[INFO] [stderr]     Checking base58 v0.2.0
[INFO] [stderr]     Checking solana-sdk v2.3.1
[INFO] [stderr]     Checking solana-msg v3.0.0
[INFO] [stderr]     Checking anchor-client v0.31.1
[INFO] [stderr]     Checking solana-commitment-config v3.1.0
[INFO] [stderr]     Checking base64ct v1.7.3
[INFO] [stderr]     Checking arc-swap v1.7.1
[INFO] [stderr]     Checking solana-system-interface v2.0.0
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stderr]     Checking simple_pyth_client_rs v0.1.0
[INFO] [stderr]     Checking prost v0.13.5
[INFO] [stderr]     Checking pyth-sdk-solana v0.10.6
[INFO] [stderr]     Checking switchboard-on-demand v0.10.0 (https://github.com/switchboard-xyz/solana-sdk?branch=main#dd1e768c)
[INFO] [stderr]     Checking liquid-bot v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `transaction::Transaction`
[INFO] [stdout]  --> src/pipeline.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     transaction::Transaction,
[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: `send_jito_bundle`
[INFO] [stdout]   --> src/pipeline.rs:28:20
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::utils::{send_jito_bundle, JitoClient};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::oracle`
[INFO] [stdout]   --> src/pipeline.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use crate::oracle;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::liquidation_tx::build_flashloan_liquidation_tx`
[INFO] [stdout]   --> src/pipeline.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use crate::liquidation_tx::build_flashloan_liquidation_tx;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/oracle/validation.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `solana_client::rpc_client::RpcClient`
[INFO] [stdout]  --> src/oracle/validation.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use solana_client::rpc_client::RpcClient;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Arc`
[INFO] [stdout]  --> src/oracle/validation.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::{Arc, RwLock};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_reserve_price`
[INFO] [stdout]   --> src/oracle/validation.rs:12:32
[INFO] [stdout]    |
[INFO] [stdout] 12 | use super::{get_oracle_config, get_reserve_price};
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::pyth::validate_pyth_confidence_strict`
[INFO] [stdout]   --> src/oracle/validation.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::pyth::validate_pyth_confidence_strict;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::switchboard::validate_switchboard_oracle_if_available`
[INFO] [stdout]   --> src/oracle/validation.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use super::switchboard::validate_switchboard_oracle_if_available;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/liquidation_tx.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Obligation as KaminoObligation`, `ObligationCollateral`, `ObligationLiquidity`, and `Reserve as KaminoReserve`
[INFO] [stdout]   --> src/liquidation_tx.rs:43:25
[INFO] [stdout]    |
[INFO] [stdout] 43 |     use crate::kamino::{Reserve as KaminoReserve, Obligation as KaminoObligation, ObligationLiquidity, ObligationCollateral};
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ObligationCollateral as KaminoObligationCollateral`, `ObligationLiquidity as KaminoObligationLiquidity`, and `Reserve as KaminoReserve`
[INFO] [stdout]    --> src/quotes.rs:215:25
[INFO] [stdout]     |
[INFO] [stdout] 215 | ...::{Reserve as KaminoReserve, ObligationLiquidity as KaminoObligationLiquidity, ObligationCollateral as KaminoObligationCollateral, S...
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `transaction::Transaction`
[INFO] [stdout]  --> src/pipeline.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     transaction::Transaction,
[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: `send_jito_bundle`
[INFO] [stdout]   --> src/pipeline.rs:28:20
[INFO] [stdout]    |
[INFO] [stdout] 28 | use crate::utils::{send_jito_bundle, JitoClient};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::oracle`
[INFO] [stdout]   --> src/pipeline.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use crate::oracle;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::liquidation_tx::build_flashloan_liquidation_tx`
[INFO] [stdout]   --> src/pipeline.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | use crate::liquidation_tx::build_flashloan_liquidation_tx;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Result`
[INFO] [stdout]  --> src/oracle/validation.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use anyhow::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `solana_client::rpc_client::RpcClient`
[INFO] [stdout]  --> src/oracle/validation.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use solana_client::rpc_client::RpcClient;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Arc`
[INFO] [stdout]  --> src/oracle/validation.rs:8:17
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::{Arc, RwLock};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `get_reserve_price`
[INFO] [stdout]   --> src/oracle/validation.rs:12:32
[INFO] [stdout]    |
[INFO] [stdout] 12 | use super::{get_oracle_config, get_reserve_price};
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::pyth::validate_pyth_confidence_strict`
[INFO] [stdout]   --> src/oracle/validation.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::pyth::validate_pyth_confidence_strict;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::switchboard::validate_switchboard_oracle_if_available`
[INFO] [stdout]   --> src/oracle/validation.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use super::switchboard::validate_switchboard_oracle_if_available;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/liquidation_tx.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use anyhow::{Context, Result};
[INFO] [stdout]   |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Obligation as KaminoObligation`, `ObligationCollateral`, `ObligationLiquidity`, and `Reserve as KaminoReserve`
[INFO] [stdout]   --> src/liquidation_tx.rs:43:25
[INFO] [stdout]    |
[INFO] [stdout] 43 |     use crate::kamino::{Reserve as KaminoReserve, Obligation as KaminoObligation, ObligationLiquidity, ObligationCollateral};
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ObligationCollateral as KaminoObligationCollateral`, `ObligationLiquidity as KaminoObligationLiquidity`, and `Reserve as KaminoReserve`
[INFO] [stdout]    --> src/quotes.rs:215:25
[INFO] [stdout]     |
[INFO] [stdout] 215 | ...::{Reserve as KaminoReserve, ObligationLiquidity as KaminoObligationLiquidity, ObligationCollateral as KaminoObligationCollateral, S...
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pipeline.rs:818:13
[INFO] [stdout]     |
[INFO] [stdout] 818 |         let mut ctx = match build_liquidation_context(rpc, &obligation).await {
[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: variable does not need to be mutable
[INFO] [stdout]     --> src/pipeline.rs:1430:9
[INFO] [stdout]      |
[INFO] [stdout] 1430 |     let mut all_ok = true;
[INFO] [stdout]      |         ----^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/pipeline.rs:818:13
[INFO] [stdout]     |
[INFO] [stdout] 818 |         let mut ctx = match build_liquidation_context(rpc, &obligation).await {
[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: variable does not need to be mutable
[INFO] [stdout]     --> src/pipeline.rs:1430:9
[INFO] [stdout]      |
[INFO] [stdout] 1430 |     let mut all_ok = true;
[INFO] [stdout]      |         ----^^^^^^
[INFO] [stdout]      |         |
[INFO] [stdout]      |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/liquidation_tx.rs:270:9
[INFO] [stdout]     |
[INFO] [stdout] 270 |     let mut instructions = vec![
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/liquidation_tx.rs:270:9
[INFO] [stdout]     |
[INFO] [stdout] 270 |     let mut instructions = vec![
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_slot`
[INFO] [stdout]    --> src/pipeline.rs:276:9
[INFO] [stdout]     |
[INFO] [stdout] 276 |     let current_slot = {
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_slot`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_obligation_slot_diff`
[INFO] [stdout]    --> src/pipeline.rs:301:9
[INFO] [stdout]     |
[INFO] [stdout] 301 |     let max_obligation_slot_diff = std::env::var("MAX_OBLIGATION_SLOT_DIFF")
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_obligation_slot_diff`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_error` is never read
[INFO] [stdout]    --> src/pipeline.rs:278:30
[INFO] [stdout]     |
[INFO] [stdout] 278 |         let mut last_error = None;
[INFO] [stdout]     |                              ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_slot`
[INFO] [stdout]    --> src/pipeline.rs:276:9
[INFO] [stdout]     |
[INFO] [stdout] 276 |     let current_slot = {
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_slot`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_obligation_slot_diff`
[INFO] [stdout]    --> src/pipeline.rs:301:9
[INFO] [stdout]     |
[INFO] [stdout] 301 |     let max_obligation_slot_diff = std::env::var("MAX_OBLIGATION_SLOT_DIFF")
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_max_obligation_slot_diff`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `last_error` is never read
[INFO] [stdout]    --> src/pipeline.rs:278:30
[INFO] [stdout]     |
[INFO] [stdout] 278 |         let mut last_error = None;
[INFO] [stdout]     |                              ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rpc`
[INFO] [stdout]     --> src/pipeline.rs:1423:5
[INFO] [stdout]      |
[INFO] [stdout] 1423 |     rpc: &Arc<RpcClient>,
[INFO] [stdout]      |     ^^^ help: if this is intentional, prefix it with an underscore: `_rpc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_slot`
[INFO] [stdout]     --> src/pipeline.rs:1426:5
[INFO] [stdout]      |
[INFO] [stdout] 1426 |     current_slot: u64,
[INFO] [stdout]      |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_slot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/quotes.rs:212:5
[INFO] [stdout]     |
[INFO] [stdout] 212 |     config: &Config,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rpc`
[INFO] [stdout]    --> src/quotes.rs:213:5
[INFO] [stdout]     |
[INFO] [stdout] 213 |     rpc: &Arc<RpcClient>,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_rpc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `deposit`
[INFO] [stdout]    --> src/quotes.rs:230:9
[INFO] [stdout]     |
[INFO] [stdout] 230 |     let deposit = &deposits[0];
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_deposit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/liquidation_tx.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     config: &Config,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `flashloan_amount`
[INFO] [stdout]    --> src/liquidation_tx.rs:176:9
[INFO] [stdout]     |
[INFO] [stdout] 176 |     let flashloan_amount = quote.debt_to_repay_raw;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_flashloan_amount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rpc`
[INFO] [stdout]     --> src/pipeline.rs:1423:5
[INFO] [stdout]      |
[INFO] [stdout] 1423 |     rpc: &Arc<RpcClient>,
[INFO] [stdout]      |     ^^^ help: if this is intentional, prefix it with an underscore: `_rpc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_slot`
[INFO] [stdout]     --> src/pipeline.rs:1426:5
[INFO] [stdout]      |
[INFO] [stdout] 1426 |     current_slot: u64,
[INFO] [stdout]      |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_slot`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]    --> src/quotes.rs:212:5
[INFO] [stdout]     |
[INFO] [stdout] 212 |     config: &Config,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rpc`
[INFO] [stdout]    --> src/quotes.rs:213:5
[INFO] [stdout]     |
[INFO] [stdout] 213 |     rpc: &Arc<RpcClient>,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_rpc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `deposit`
[INFO] [stdout]    --> src/quotes.rs:230:9
[INFO] [stdout]     |
[INFO] [stdout] 230 |     let deposit = &deposits[0];
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_deposit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `config`
[INFO] [stdout]   --> src/liquidation_tx.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |     config: &Config,
[INFO] [stdout]    |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_config`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `flashloan_amount`
[INFO] [stdout]    --> src/liquidation_tx.rs:176:9
[INFO] [stdout]     |
[INFO] [stdout] 176 |     let flashloan_amount = quote.debt_to_repay_raw;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_flashloan_amount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `skip_scan`
[INFO] [stdout]    --> src/main.rs:342:9
[INFO] [stdout]     |
[INFO] [stdout] 342 |     let skip_scan = env::var("SKIP_STARTUP_SCAN")
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_skip_scan`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ElevationGroup` is never constructed
[INFO] [stdout]    --> src/kamino.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub struct ElevationGroup {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LendingMarket` is never constructed
[INFO] [stdout]    --> src/kamino.rs:235:12
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub struct LendingMarket {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `has_any_debt`, `has_any_deposits`, `active_deposit_count`, `active_borrow_count`, and `get_owner` are never used
[INFO] [stdout]    --> src/kamino.rs:391:12
[INFO] [stdout]     |
[INFO] [stdout] 369 | impl Obligation {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 391 |     pub fn has_any_debt(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     pub fn has_any_deposits(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 401 |     pub fn active_deposit_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 408 |     pub fn active_borrow_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 415 |     pub fn get_owner(&self) -> Pubkey {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `available_amount`, `borrowed_amount`, and `is_active` are never used
[INFO] [stdout]    --> src/kamino.rs:536:12
[INFO] [stdout]     |
[INFO] [stdout] 469 | impl Reserve {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 536 |     pub fn available_amount(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 541 |     pub fn borrowed_amount(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 546 |     pub fn is_active(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_account_data`, `is_emergency_mode`, `is_borrow_disabled`, `max_close_factor_pct`, and `name` are never used
[INFO] [stdout]    --> src/kamino.rs:560:12
[INFO] [stdout]     |
[INFO] [stdout] 558 | impl LendingMarket {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 559 |     /// Parse lending market from account data
[INFO] [stdout] 560 |     pub fn from_account_data(data: &[u8]) -> Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn is_emergency_mode(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 585 |     pub fn is_borrow_disabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 590 |     pub fn max_close_factor_pct(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 595 |     pub fn name(&self) -> String {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_program_id` is never used
[INFO] [stdout]    --> src/kamino.rs:607:8
[INFO] [stdout]     |
[INFO] [stdout] 607 | pub fn get_program_id() -> Pubkey {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_kamino_program` is never used
[INFO] [stdout]    --> src/kamino.rs:615:8
[INFO] [stdout]     |
[INFO] [stdout] 615 | pub fn is_kamino_program(program_id: &Pubkey) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_flash_loan_discriminator` is never used
[INFO] [stdout]    --> src/kamino.rs:703:8
[INFO] [stdout]     |
[INFO] [stdout] 703 | pub fn get_flash_loan_discriminator() -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_flash_repay_discriminator` is never used
[INFO] [stdout]    --> src/kamino.rs:708:8
[INFO] [stdout]     |
[INFO] [stdout] 708 | pub fn get_flash_repay_discriminator() -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLASH_LOAN` is never used
[INFO] [stdout]    --> src/kamino.rs:675:15
[INFO] [stdout]     |
[INFO] [stdout] 675 |     pub const FLASH_LOAN: [u8; 8] = [0; 8]; // TODO: Replace with actual
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLASH_REPAY` is never used
[INFO] [stdout]    --> src/kamino.rs:679:15
[INFO] [stdout]     |
[INFO] [stdout] 679 |     pub const FLASH_REPAY: [u8; 8] = [0; 8]; // TODO: Replace with actual
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `allowed_borrow_value_usd`, `owner`, and `lending_market` are never used
[INFO] [stdout]   --> src/lending_trait.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait LendingObligation {
[INFO] [stdout]    |           ----------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn allowed_borrow_value_usd(&self) -> f64;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     fn owner(&self) -> Pubkey;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     fn lending_market(&self) -> Pubkey;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `jupiter_url` is never read
[INFO] [stdout]   --> src/pipeline.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct Config {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub jupiter_url: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `obligation_pubkey` and `oracle_ok` are never used
[INFO] [stdout]     --> src/pipeline.rs:1236:12
[INFO] [stdout]      |
[INFO] [stdout] 1235 | impl LiquidationContext {
[INFO] [stdout]      | ----------------------- methods in this implementation
[INFO] [stdout] 1236 |     pub fn obligation_pubkey(&self) -> Pubkey {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1240 |     pub fn oracle_ok(&self) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `quote` and `flashloan_fee_raw` are never read
[INFO] [stdout]     --> src/pipeline.rs:1456:9
[INFO] [stdout]      |
[INFO] [stdout] 1455 | pub struct LiquidationQuote {
[INFO] [stdout]      |            ---------------- fields in this struct
[INFO] [stdout] 1456 |     pub quote: JupiterQuote,
[INFO] [stdout]      |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1461 |     pub flashloan_fee_raw: u64,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_profit_from_quote` is never used
[INFO] [stdout]    --> src/jup.rs:243:8
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub fn calculate_profit_from_quote(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_price_impact_pct` is never used
[INFO] [stdout]    --> src/jup.rs:260:8
[INFO] [stdout]     |
[INFO] [stdout] 260 | pub fn get_price_impact_pct(quote: &JupiterQuote) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_hop_count` is never used
[INFO] [stdout]    --> src/jup.rs:269:8
[INFO] [stdout]     |
[INFO] [stdout] 269 | pub fn get_hop_count(quote: &JupiterQuote) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_jupiter_swap_instruction` is never used
[INFO] [stdout]    --> src/jup.rs:284:14
[INFO] [stdout]     |
[INFO] [stdout] 284 | pub async fn build_jupiter_swap_instruction(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tip_account` is never read
[INFO] [stdout]   --> src/utils.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct JitoBundle {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 19 |     transactions: Vec<Transaction>,
[INFO] [stdout] 20 |     tip_account: Pubkey,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `JitoBundle` 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 `transactions` is never used
[INFO] [stdout]   --> src/utils.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl JitoBundle {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn transactions(&self) -> &[Transaction] {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `add_tip_transaction` is never used
[INFO] [stdout]    --> src/utils.rs:209:12
[INFO] [stdout]     |
[INFO] [stdout]  56 | impl JitoClient {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn add_tip_transaction(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_transaction` is never used
[INFO] [stdout]    --> src/utils.rs:292:8
[INFO] [stdout]     |
[INFO] [stdout] 292 | pub fn sign_transaction(tx: &mut Transaction, keypair: &Keypair) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_jito_bundle` is never used
[INFO] [stdout]    --> src/utils.rs:349:14
[INFO] [stdout]     |
[INFO] [stdout] 349 | pub async fn send_jito_bundle(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rpc_account_exists_with_retry` is never used
[INFO] [stdout]    --> src/utils.rs:389:14
[INFO] [stdout]     |
[INFO] [stdout] 389 | pub async fn rpc_account_exists_with_retry(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PRICE_CACHE` is never used
[INFO] [stdout]   --> src/oracle/mod.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | static PRICE_CACHE: OnceLock<RwLock<HashMap<Pubkey, CachedPrice>>> = OnceLock::new();
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_price_cache` is never used
[INFO] [stdout]   --> src/oracle/mod.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn get_price_cache() -> &'static RwLock<HashMap<Pubkey, CachedPrice>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OraclePrice` is never constructed
[INFO] [stdout]   --> src/oracle/mod.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct OraclePrice {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `OracleSource` is never used
[INFO] [stdout]   --> src/oracle/mod.rs:46:10
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub enum OracleSource {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_reserve_price` is never used
[INFO] [stdout]   --> src/oracle/mod.rs:61:14
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub async fn get_reserve_price(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_token_symbol_from_mint` is never used
[INFO] [stdout]    --> src/oracle/mod.rs:197:4
[INFO] [stdout]     |
[INFO] [stdout] 197 | fn get_token_symbol_from_mint(mint: &Pubkey) -> Option<&'static str> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_oracle_config` is never used
[INFO] [stdout]    --> src/oracle/mod.rs:226:8
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub fn get_oracle_config() -> (u64, f64, u64, usize, usize, f64, f64, f64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_VALID_PRICE_USD` is never used
[INFO] [stdout]    --> src/oracle/mod.rs:266:7
[INFO] [stdout]     |
[INFO] [stdout] 266 | const MIN_VALID_PRICE_USD: f64 = 0.01; // $0.01 minimum
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `min_valid_price_usd` is never used
[INFO] [stdout]    --> src/oracle/mod.rs:268:8
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub fn min_valid_price_usd() -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PYTH_PRICE_STATUS_UNKNOWN` is never used
[INFO] [stdout]   --> src/oracle/pyth.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const PYTH_PRICE_STATUS_UNKNOWN: u8 = 0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PYTH_PRICE_STATUS_PRICE` is never used
[INFO] [stdout]   --> src/oracle/pyth.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const PYTH_PRICE_STATUS_PRICE: u8 = 1; // Price status - acceptable for liquidations
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PYTH_PRICE_STATUS_TRADING` is never used
[INFO] [stdout]   --> src/oracle/pyth.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const PYTH_PRICE_STATUS_TRADING: u8 = 2; // Trading status - preferred for liquidations
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PYTH_PRICE_STATUS_HALTED` is never used
[INFO] [stdout]   --> src/oracle/pyth.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const PYTH_PRICE_STATUS_HALTED: u8 = 3;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pyth_program_id` is never used
[INFO] [stdout]   --> src/oracle/pyth.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn pyth_program_id() -> Result<Pubkey> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_pyth_oracle` is never used
[INFO] [stdout]   --> src/oracle/pyth.rs:37:14
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub async fn validate_pyth_oracle(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_pyth_oracle_v2` is never used
[INFO] [stdout]    --> src/oracle/pyth.rs:151:14
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub async fn validate_pyth_oracle_v2(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_pyth_oracle_v3` is never used
[INFO] [stdout]    --> src/oracle/pyth.rs:288:14
[INFO] [stdout]     |
[INFO] [stdout] 288 | pub async fn validate_pyth_oracle_v3(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_pyth_confidence_strict` is never used
[INFO] [stdout]    --> src/oracle/pyth.rs:447:14
[INFO] [stdout]     |
[INFO] [stdout] 447 | pub async fn validate_pyth_confidence_strict(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_aligned_buffer` is never used
[INFO] [stdout]   --> src/oracle/switchboard.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn get_aligned_buffer(size: usize) -> Vec<u8> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `return_aligned_buffer` is never used
[INFO] [stdout]   --> src/oracle/switchboard.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn return_aligned_buffer(mut buffer: Vec<u8>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `switchboard_program_id_v2` is never used
[INFO] [stdout]   --> src/oracle/switchboard.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn switchboard_program_id_v2() -> Result<Pubkey> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `switchboard_program_id_v3` is never used
[INFO] [stdout]   --> src/oracle/switchboard.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn switchboard_program_id_v3() -> Result<Pubkey> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_switchboard_oracle_if_available` is never used
[INFO] [stdout]   --> src/oracle/switchboard.rs:72:14
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub async fn validate_switchboard_oracle_if_available(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_switchboard_oracle_by_pubkey` is never used
[INFO] [stdout]   --> src/oracle/switchboard.rs:91:14
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub async fn validate_switchboard_oracle_by_pubkey(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OraclePriceCache` is never constructed
[INFO] [stdout]   --> src/oracle/validation.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct OraclePriceCache {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_price`, `calculate_twap`, and `is_price_anomaly` are never used
[INFO] [stdout]   --> src/oracle/validation.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl OraclePriceCache {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 25 |     fn new(max_age_secs: u64, min_samples: usize) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     fn add_price(&mut self, price: f64) {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn calculate_twap(&self) -> Option<f64> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     fn is_price_anomaly(&self, current_price: f64, threshold_pct: f64) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PRICE_CACHES` is never used
[INFO] [stdout]   --> src/oracle/validation.rs:91:8
[INFO] [stdout]    |
[INFO] [stdout] 91 | static PRICE_CACHES: OnceLock<RwLock<HashMap<Pubkey, OraclePriceCache>>> = 
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_price_caches` is never used
[INFO] [stdout]   --> src/oracle/validation.rs:95:4
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn get_price_caches() -> &'static RwLock<HashMap<Pubkey, OraclePriceCache>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `base` and `quote` are never read
[INFO] [stdout]   --> src/oracle/hermes.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct CachedFeed {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     base: String,           // Base currency (e.g., "SOL")
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 26 |     quote: String,          // Quote currency (e.g., "USD")
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CachedFeed` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_prices_batch` is never used
[INFO] [stdout]    --> src/oracle/hermes.rs:204:14
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub async fn get_prices_batch(symbols: &[&str]) -> Result<HashMap<String, f64>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_feed_cache` is never used
[INFO] [stdout]    --> src/oracle/hermes.rs:275:8
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub fn clear_feed_cache() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_cached_feed_id` is never used
[INFO] [stdout]    --> src/oracle/hermes.rs:292:8
[INFO] [stdout]     |
[INFO] [stdout] 292 | pub fn get_cached_feed_id(symbol: &str) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAD` is never used
[INFO] [stdout]   --> src/quotes.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const WAD: u128 = 1_000_000_000_000_000_000;
[INFO] [stdout]    |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_sol_price_usd` is never used
[INFO] [stdout]    --> src/quotes.rs:173:14
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub async fn get_sol_price_usd(rpc: &Arc<RpcClient>, ctx: &LiquidationContext) -> Option<f64> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `skip_scan`
[INFO] [stdout]    --> src/main.rs:342:9
[INFO] [stdout]     |
[INFO] [stdout] 342 |     let skip_scan = env::var("SKIP_STARTUP_SCAN")
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_skip_scan`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ElevationGroup` is never constructed
[INFO] [stdout]    --> src/kamino.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub struct ElevationGroup {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LendingMarket` is never constructed
[INFO] [stdout]    --> src/kamino.rs:235:12
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub struct LendingMarket {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `has_any_debt`, `has_any_deposits`, `active_deposit_count`, `active_borrow_count`, and `get_owner` are never used
[INFO] [stdout]    --> src/kamino.rs:391:12
[INFO] [stdout]     |
[INFO] [stdout] 369 | impl Obligation {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 391 |     pub fn has_any_debt(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     pub fn has_any_deposits(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 401 |     pub fn active_deposit_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 408 |     pub fn active_borrow_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 415 |     pub fn get_owner(&self) -> Pubkey {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `available_amount`, `borrowed_amount`, and `is_active` are never used
[INFO] [stdout]    --> src/kamino.rs:536:12
[INFO] [stdout]     |
[INFO] [stdout] 469 | impl Reserve {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 536 |     pub fn available_amount(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 541 |     pub fn borrowed_amount(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 546 |     pub fn is_active(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_account_data`, `is_emergency_mode`, `is_borrow_disabled`, `max_close_factor_pct`, and `name` are never used
[INFO] [stdout]    --> src/kamino.rs:560:12
[INFO] [stdout]     |
[INFO] [stdout] 558 | impl LendingMarket {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 559 |     /// Parse lending market from account data
[INFO] [stdout] 560 |     pub fn from_account_data(data: &[u8]) -> Result<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 580 |     pub fn is_emergency_mode(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 585 |     pub fn is_borrow_disabled(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 590 |     pub fn max_close_factor_pct(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 595 |     pub fn name(&self) -> String {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_kamino_program` is never used
[INFO] [stdout]    --> src/kamino.rs:615:8
[INFO] [stdout]     |
[INFO] [stdout] 615 | pub fn is_kamino_program(program_id: &Pubkey) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_flash_loan_discriminator` is never used
[INFO] [stdout]    --> src/kamino.rs:703:8
[INFO] [stdout]     |
[INFO] [stdout] 703 | pub fn get_flash_loan_discriminator() -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_flash_repay_discriminator` is never used
[INFO] [stdout]    --> src/kamino.rs:708:8
[INFO] [stdout]     |
[INFO] [stdout] 708 | pub fn get_flash_repay_discriminator() -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLASH_LOAN` is never used
[INFO] [stdout]    --> src/kamino.rs:675:15
[INFO] [stdout]     |
[INFO] [stdout] 675 |     pub const FLASH_LOAN: [u8; 8] = [0; 8]; // TODO: Replace with actual
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FLASH_REPAY` is never used
[INFO] [stdout]    --> src/kamino.rs:679:15
[INFO] [stdout]     |
[INFO] [stdout] 679 |     pub const FLASH_REPAY: [u8; 8] = [0; 8]; // TODO: Replace with actual
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `allowed_borrow_value_usd`, `owner`, and `lending_market` are never used
[INFO] [stdout]   --> src/lending_trait.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub trait LendingObligation {
[INFO] [stdout]    |           ----------------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn allowed_borrow_value_usd(&self) -> f64;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     fn owner(&self) -> Pubkey;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     fn lending_market(&self) -> Pubkey;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `jupiter_url` is never read
[INFO] [stdout]   --> src/pipeline.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct Config {
[INFO] [stdout]    |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub jupiter_url: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `obligation_pubkey` and `oracle_ok` are never used
[INFO] [stdout]     --> src/pipeline.rs:1236:12
[INFO] [stdout]      |
[INFO] [stdout] 1235 | impl LiquidationContext {
[INFO] [stdout]      | ----------------------- methods in this implementation
[INFO] [stdout] 1236 |     pub fn obligation_pubkey(&self) -> Pubkey {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1240 |     pub fn oracle_ok(&self) -> bool {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `quote` and `flashloan_fee_raw` are never read
[INFO] [stdout]     --> src/pipeline.rs:1456:9
[INFO] [stdout]      |
[INFO] [stdout] 1455 | pub struct LiquidationQuote {
[INFO] [stdout]      |            ---------------- fields in this struct
[INFO] [stdout] 1456 |     pub quote: JupiterQuote,
[INFO] [stdout]      |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1461 |     pub flashloan_fee_raw: u64,
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_profit_from_quote` is never used
[INFO] [stdout]    --> src/jup.rs:243:8
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub fn calculate_profit_from_quote(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_price_impact_pct` is never used
[INFO] [stdout]    --> src/jup.rs:260:8
[INFO] [stdout]     |
[INFO] [stdout] 260 | pub fn get_price_impact_pct(quote: &JupiterQuote) -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_hop_count` is never used
[INFO] [stdout]    --> src/jup.rs:269:8
[INFO] [stdout]     |
[INFO] [stdout] 269 | pub fn get_hop_count(quote: &JupiterQuote) -> u8 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_jupiter_swap_instruction` is never used
[INFO] [stdout]    --> src/jup.rs:284:14
[INFO] [stdout]     |
[INFO] [stdout] 284 | pub async fn build_jupiter_swap_instruction(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tip_account` is never read
[INFO] [stdout]   --> src/utils.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct JitoBundle {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 19 |     transactions: Vec<Transaction>,
[INFO] [stdout] 20 |     tip_account: Pubkey,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `JitoBundle` 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 `transactions` is never used
[INFO] [stdout]   --> src/utils.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl JitoBundle {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn transactions(&self) -> &[Transaction] {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `add_tip_transaction` is never used
[INFO] [stdout]    --> src/utils.rs:209:12
[INFO] [stdout]     |
[INFO] [stdout]  56 | impl JitoClient {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn add_tip_transaction(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sign_transaction` is never used
[INFO] [stdout]    --> src/utils.rs:292:8
[INFO] [stdout]     |
[INFO] [stdout] 292 | pub fn sign_transaction(tx: &mut Transaction, keypair: &Keypair) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_jito_bundle` is never used
[INFO] [stdout]    --> src/utils.rs:349:14
[INFO] [stdout]     |
[INFO] [stdout] 349 | pub async fn send_jito_bundle(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rpc_account_exists_with_retry` is never used
[INFO] [stdout]    --> src/utils.rs:389:14
[INFO] [stdout]     |
[INFO] [stdout] 389 | pub async fn rpc_account_exists_with_retry(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PRICE_CACHE` is never used
[INFO] [stdout]   --> src/oracle/mod.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | static PRICE_CACHE: OnceLock<RwLock<HashMap<Pubkey, CachedPrice>>> = OnceLock::new();
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_price_cache` is never used
[INFO] [stdout]   --> src/oracle/mod.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn get_price_cache() -> &'static RwLock<HashMap<Pubkey, CachedPrice>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OraclePrice` is never constructed
[INFO] [stdout]   --> src/oracle/mod.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct OraclePrice {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `OracleSource` is never used
[INFO] [stdout]   --> src/oracle/mod.rs:46:10
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub enum OracleSource {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_reserve_price` is never used
[INFO] [stdout]   --> src/oracle/mod.rs:61:14
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub async fn get_reserve_price(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_token_symbol_from_mint` is never used
[INFO] [stdout]    --> src/oracle/mod.rs:197:4
[INFO] [stdout]     |
[INFO] [stdout] 197 | fn get_token_symbol_from_mint(mint: &Pubkey) -> Option<&'static str> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_oracle_config` is never used
[INFO] [stdout]    --> src/oracle/mod.rs:226:8
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub fn get_oracle_config() -> (u64, f64, u64, usize, usize, f64, f64, f64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_VALID_PRICE_USD` is never used
[INFO] [stdout]    --> src/oracle/mod.rs:266:7
[INFO] [stdout]     |
[INFO] [stdout] 266 | const MIN_VALID_PRICE_USD: f64 = 0.01; // $0.01 minimum
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 56s
[INFO] [stdout] warning: function `min_valid_price_usd` is never used
[INFO] [stdout]    --> src/oracle/mod.rs:268:8
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub fn min_valid_price_usd() -> f64 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PYTH_PRICE_STATUS_UNKNOWN` is never used
[INFO] [stdout]   --> src/oracle/pyth.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const PYTH_PRICE_STATUS_UNKNOWN: u8 = 0;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PYTH_PRICE_STATUS_PRICE` is never used
[INFO] [stdout]   --> src/oracle/pyth.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const PYTH_PRICE_STATUS_PRICE: u8 = 1; // Price status - acceptable for liquidations
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PYTH_PRICE_STATUS_TRADING` is never used
[INFO] [stdout]   --> src/oracle/pyth.rs:15:7
[INFO] [stdout]    |
[INFO] [stdout] 15 | const PYTH_PRICE_STATUS_TRADING: u8 = 2; // Trading status - preferred for liquidations
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PYTH_PRICE_STATUS_HALTED` is never used
[INFO] [stdout]   --> src/oracle/pyth.rs:16:7
[INFO] [stdout]    |
[INFO] [stdout] 16 | const PYTH_PRICE_STATUS_HALTED: u8 = 3;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pyth_program_id` is never used
[INFO] [stdout]   --> src/oracle/pyth.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn pyth_program_id() -> Result<Pubkey> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_pyth_oracle` is never used
[INFO] [stdout]   --> src/oracle/pyth.rs:37:14
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub async fn validate_pyth_oracle(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_pyth_oracle_v2` is never used
[INFO] [stdout]    --> src/oracle/pyth.rs:151:14
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub async fn validate_pyth_oracle_v2(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_pyth_oracle_v3` is never used
[INFO] [stdout]    --> src/oracle/pyth.rs:288:14
[INFO] [stdout]     |
[INFO] [stdout] 288 | pub async fn validate_pyth_oracle_v3(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_pyth_confidence_strict` is never used
[INFO] [stdout]    --> src/oracle/pyth.rs:447:14
[INFO] [stdout]     |
[INFO] [stdout] 447 | pub async fn validate_pyth_confidence_strict(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_aligned_buffer` is never used
[INFO] [stdout]   --> src/oracle/switchboard.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn get_aligned_buffer(size: usize) -> Vec<u8> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `return_aligned_buffer` is never used
[INFO] [stdout]   --> src/oracle/switchboard.rs:36:4
[INFO] [stdout]    |
[INFO] [stdout] 36 | fn return_aligned_buffer(mut buffer: Vec<u8>) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `switchboard_program_id_v2` is never used
[INFO] [stdout]   --> src/oracle/switchboard.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn switchboard_program_id_v2() -> Result<Pubkey> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `switchboard_program_id_v3` is never used
[INFO] [stdout]   --> src/oracle/switchboard.rs:58:8
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn switchboard_program_id_v3() -> Result<Pubkey> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_switchboard_oracle_if_available` is never used
[INFO] [stdout]   --> src/oracle/switchboard.rs:72:14
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub async fn validate_switchboard_oracle_if_available(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_switchboard_oracle_by_pubkey` is never used
[INFO] [stdout]   --> src/oracle/switchboard.rs:91:14
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub async fn validate_switchboard_oracle_by_pubkey(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OraclePriceCache` is never constructed
[INFO] [stdout]   --> src/oracle/validation.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | struct OraclePriceCache {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_price`, `calculate_twap`, and `is_price_anomaly` are never used
[INFO] [stdout]   --> src/oracle/validation.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl OraclePriceCache {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 25 |     fn new(max_age_secs: u64, min_samples: usize) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     fn add_price(&mut self, price: f64) {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     fn calculate_twap(&self) -> Option<f64> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     fn is_price_anomaly(&self, current_price: f64, threshold_pct: f64) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PRICE_CACHES` is never used
[INFO] [stdout]   --> src/oracle/validation.rs:91:8
[INFO] [stdout]    |
[INFO] [stdout] 91 | static PRICE_CACHES: OnceLock<RwLock<HashMap<Pubkey, OraclePriceCache>>> = 
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_price_caches` is never used
[INFO] [stdout]   --> src/oracle/validation.rs:95:4
[INFO] [stdout]    |
[INFO] [stdout] 95 | fn get_price_caches() -> &'static RwLock<HashMap<Pubkey, OraclePriceCache>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `base` and `quote` are never read
[INFO] [stdout]   --> src/oracle/hermes.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct CachedFeed {
[INFO] [stdout]    |        ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     base: String,           // Base currency (e.g., "SOL")
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 26 |     quote: String,          // Quote currency (e.g., "USD")
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CachedFeed` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_prices_batch` is never used
[INFO] [stdout]    --> src/oracle/hermes.rs:204:14
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub async fn get_prices_batch(symbols: &[&str]) -> Result<HashMap<String, f64>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_feed_cache` is never used
[INFO] [stdout]    --> src/oracle/hermes.rs:275:8
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub fn clear_feed_cache() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_cached_feed_id` is never used
[INFO] [stdout]    --> src/oracle/hermes.rs:292:8
[INFO] [stdout]     |
[INFO] [stdout] 292 | pub fn get_cached_feed_id(symbol: &str) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WAD` is never used
[INFO] [stdout]   --> src/quotes.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const WAD: u128 = 1_000_000_000_000_000_000;
[INFO] [stdout]    |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_sol_price_usd` is never used
[INFO] [stdout]    --> src/quotes.rs:173:14
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub async fn get_sol_price_usd(rpc: &Arc<RpcClient>, ctx: &LiquidationContext) -> Option<f64> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "65f6ee52f4a4c0a8d69a99275c7153e3c1682df6d1e8fcefac61488e274bea93", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "65f6ee52f4a4c0a8d69a99275c7153e3c1682df6d1e8fcefac61488e274bea93", kill_on_drop: false }`
[INFO] [stdout] 65f6ee52f4a4c0a8d69a99275c7153e3c1682df6d1e8fcefac61488e274bea93
