[INFO] cloning repository https://github.com/rvenandowsley/Polymarket-crypto-5min-arbitrage-bot
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/rvenandowsley/Polymarket-crypto-5min-arbitrage-bot" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frvenandowsley%2FPolymarket-crypto-5min-arbitrage-bot", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frvenandowsley%2FPolymarket-crypto-5min-arbitrage-bot'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5549a22eb51e77e5a5ba132391fba551b00b35f1
[INFO] checking rvenandowsley/Polymarket-crypto-5min-arbitrage-bot against master#59fd4ef94daa991e6797b5aa6127e824f3067def for pr-145108-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Frvenandowsley%2FPolymarket-crypto-5min-arbitrage-bot" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/rvenandowsley/Polymarket-crypto-5min-arbitrage-bot
[INFO] finished tweaking git repo https://github.com/rvenandowsley/Polymarket-crypto-5min-arbitrage-bot
[INFO] tweaked toml for git repo https://github.com/rvenandowsley/Polymarket-crypto-5min-arbitrage-bot written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/rvenandowsley/Polymarket-crypto-5min-arbitrage-bot on toolchain 59fd4ef94daa991e6797b5aa6127e824f3067def
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+59fd4ef94daa991e6797b5aa6127e824f3067def" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+59fd4ef94daa991e6797b5aa6127e824f3067def" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 505 packages to latest compatible versions
[INFO] [stderr]       Adding generic-array v0.14.7 (available: v0.14.9)
[INFO] [stderr]       Adding reqwest v0.12.28 (available: v0.13.2)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+59fd4ef94daa991e6797b5aa6127e824f3067def" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded serde_ignored v0.1.14
[INFO] [stderr]   Downloaded serde_html_form v0.4.0
[INFO] [stderr]   Downloaded rpc-check v0.1.3
[INFO] [stderr]   Downloaded alloy-eip2930 v0.2.3
[INFO] [stderr]   Downloaded alloy-tx-macros v1.7.3
[INFO] [stderr]   Downloaded alloy-rlp-derive v0.3.13
[INFO] [stderr]   Downloaded alloy-trie v0.9.4
[INFO] [stderr]   Downloaded alloy-rpc-types-any v1.7.3
[INFO] [stderr]   Downloaded alloy-sol-macro-input v1.5.7
[INFO] [stderr]   Downloaded alloy-core v1.5.7
[INFO] [stderr]   Downloaded alloy-consensus-any v1.7.3
[INFO] [stderr]   Downloaded alloy-chains v0.2.30
[INFO] [stderr]   Downloaded alloy-contract v1.7.3
[INFO] [stderr]   Downloaded alloy-dyn-abi v1.5.7
[INFO] [stderr]   Downloaded syn-solidity v1.5.7
[INFO] [stderr]   Downloaded alloy-rpc-types-eth v1.7.3
[INFO] [stderr]   Downloaded alloy-consensus v1.7.3
[INFO] [stderr]   Downloaded alloy-primitives v1.5.7
[INFO] [stderr]   Downloaded alloy-sol-types v1.5.7
[INFO] [stderr]   Downloaded alloy-provider v1.7.3
[INFO] [stderr]   Downloaded polymarket-client-sdk v0.4.2
[INFO] [stderr]   Downloaded bon-macros v3.9.0
[INFO] [stderr]   Downloaded alloy-rpc-client v1.7.3
[INFO] [stderr]   Downloaded alloy-signer v1.7.3
[INFO] [stderr]   Downloaded rapidhash v4.4.1
[INFO] [stderr]   Downloaded alloy-json-abi v1.5.7
[INFO] [stderr]   Downloaded alloy-transport v1.7.3
[INFO] [stderr]   Downloaded alloy-eips v1.7.3
[INFO] [stderr]   Downloaded alloy-transport-http v1.7.3
[INFO] [stderr]   Downloaded blst v0.3.16
[INFO] [stderr]   Downloaded nybbles v0.4.8
[INFO] [stderr]   Downloaded alloy-eip7928 v0.3.2
[INFO] [stderr]   Downloaded alloy-network-primitives v1.7.3
[INFO] [stderr]   Downloaded alloy-network v1.7.3
[INFO] [stderr]   Downloaded alloy-signer-local v1.7.3
[INFO] [stderr]   Downloaded alloy-sol-macro-expander v1.5.7
[INFO] [stderr]   Downloaded alloy-json-rpc v1.7.3
[INFO] [stderr]   Downloaded alloy-eip7702 v0.6.3
[INFO] [stderr]   Downloaded alloy-serde v1.7.3
[INFO] [stderr]   Downloaded alloy-sol-macro v1.5.7
[INFO] [stderr]   Downloaded alloy-sol-type-parser v1.5.7
[INFO] [stderr]   Downloaded alloy-rlp v0.3.13
[INFO] [stderr]   Downloaded alloy v1.7.3
[INFO] [stderr]   Downloaded bon v3.9.0
[INFO] [stderr]   Downloaded c-kzg v2.1.5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+59fd4ef94daa991e6797b5aa6127e824f3067def" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c68e0262bd8f6b943ea76a0b83e1caf346340f0c02d457e6c0937bf321d8a654
[INFO] running `Command { std: "docker" "start" "-a" "c68e0262bd8f6b943ea76a0b83e1caf346340f0c02d457e6c0937bf321d8a654", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c68e0262bd8f6b943ea76a0b83e1caf346340f0c02d457e6c0937bf321d8a654", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c68e0262bd8f6b943ea76a0b83e1caf346340f0c02d457e6c0937bf321d8a654", kill_on_drop: false }`
[INFO] [stdout] c68e0262bd8f6b943ea76a0b83e1caf346340f0c02d457e6c0937bf321d8a654
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+59fd4ef94daa991e6797b5aa6127e824f3067def" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ee406be22e96ce01ebbc109a53ddaaf4d44e79e85b8a4aa3070a7f109caf9b81
[INFO] running `Command { std: "docker" "start" "-a" "ee406be22e96ce01ebbc109a53ddaaf4d44e79e85b8a4aa3070a7f109caf9b81", kill_on_drop: false }`
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling ruint-macro v1.2.1
[INFO] [stderr]     Checking der v0.7.10
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking keccak v0.1.6
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]     Checking const-hex v1.17.0
[INFO] [stderr]     Checking rustc-hash v2.1.1
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling alloy-rlp-derive v0.3.13
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling syn-solidity v1.5.7
[INFO] [stderr]    Compiling macro-string v0.1.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking bytes v1.11.1
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking arrayvec v0.7.6
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-bigint v0.5.5
[INFO] [stderr]     Checking futures-io v0.3.32
[INFO] [stderr]     Checking sec1 v0.7.3
[INFO] [stderr]     Checking alloy-rlp v0.3.13
[INFO] [stderr]     Checking spki v0.7.3
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]    Compiling auto_impl v1.3.0
[INFO] [stderr]     Checking ruint v1.17.2
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking rfc6979 v0.4.0
[INFO] [stderr]     Checking sha3 v0.10.8
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]     Checking indexmap v2.13.0
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking chrono v0.4.43
[INFO] [stderr]     Checking nybbles v0.4.8
[INFO] [stderr]     Checking elliptic-curve v0.13.8
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking webpki-roots v1.0.6
[INFO] [stderr]     Checking futures-utils-wasm v0.1.0
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling num_enum_derive v0.7.5
[INFO] [stderr]     Checking alloy-sol-type-parser v1.5.7
[INFO] [stderr]     Checking ecdsa v0.16.9
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling siphasher v1.0.2
[INFO] [stderr]     Checking k256 v0.13.4
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling phf_shared v0.13.1
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking lru v0.16.3
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]    Compiling phf_generator v0.13.1
[INFO] [stderr]     Checking data-encoding v2.10.0
[INFO] [stderr]    Compiling rust_decimal v1.40.0
[INFO] [stderr]     Checking regex-syntax v0.8.9
[INFO] [stderr]     Checking num_enum v0.7.5
[INFO] [stderr]    Compiling phf_macros v0.13.1
[INFO] [stderr]     Checking polyval v0.6.2
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking backoff v0.4.0
[INFO] [stderr]     Checking uuid v1.21.0
[INFO] [stderr]     Checking ghash v0.5.1
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]    Compiling darling_core v0.21.3
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking serde_html_form v0.4.0
[INFO] [stderr]     Checking phf v0.13.1
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]     Checking secrecy v0.10.3
[INFO] [stderr]     Checking strum v0.27.2
[INFO] [stderr]    Compiling rust_decimal_macros v1.40.0
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]     Checking serde_ignored v0.1.14
[INFO] [stderr]     Checking aes-gcm v0.10.3
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]     Checking derive_more v2.1.1
[INFO] [stderr]    Compiling alloy-primitives v1.5.7
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling bon-macros v3.9.0
[INFO] [stderr]     Checking rustls-webpki v0.103.9
[INFO] [stderr]     Checking alloy-json-abi v1.5.7
[INFO] [stderr]     Checking alloy-eip7928 v0.3.2
[INFO] [stderr]     Checking alloy-eip7702 v0.6.3
[INFO] [stderr]     Checking alloy-serde v1.7.3
[INFO] [stderr]     Checking alloy-eip2930 v0.2.3
[INFO] [stderr]     Checking alloy-eip2124 v0.2.0
[INFO] [stderr]     Checking alloy-trie v0.9.4
[INFO] [stderr]     Checking alloy-signer v1.7.3
[INFO] [stderr]     Checking alloy-chains v0.2.30
[INFO] [stderr]    Compiling darling_macro v0.21.3
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking rpc-check v0.1.3
[INFO] [stderr]    Compiling darling v0.21.3
[INFO] [stderr]    Compiling serde_with_macros v3.16.1
[INFO] [stderr]    Compiling alloy-tx-macros v1.7.3
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking h2 v0.4.13
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking serde_with v3.16.1
[INFO] [stderr]    Compiling alloy-sol-macro-input v1.5.7
[INFO] [stderr]    Compiling alloy-sol-macro-expander v1.5.7
[INFO] [stderr]     Checking bon v3.9.0
[INFO] [stderr]     Checking alloy-eips v1.7.3
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking tungstenite v0.28.0
[INFO] [stderr]     Checking rustls-platform-verifier v0.6.2
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking tokio-tungstenite v0.28.0
[INFO] [stderr]     Checking alloy-consensus v1.7.3
[INFO] [stderr]    Compiling alloy-sol-macro v1.5.7
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking alloy-sol-types v1.5.7
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking reqwest v0.13.2
[INFO] [stderr]     Checking alloy-network-primitives v1.7.3
[INFO] [stderr]     Checking alloy-consensus-any v1.7.3
[INFO] [stderr]     Checking alloy-json-rpc v1.7.3
[INFO] [stderr]     Checking alloy-rpc-types-eth v1.7.3
[INFO] [stderr]     Checking alloy-dyn-abi v1.5.7
[INFO] [stderr]     Checking alloy-core v1.5.7
[INFO] [stderr]     Checking alloy-transport v1.7.3
[INFO] [stderr]     Checking alloy-transport-http v1.7.3
[INFO] [stderr]     Checking alloy-rpc-client v1.7.3
[INFO] [stderr]     Checking alloy-rpc-types-any v1.7.3
[INFO] [stderr]     Checking alloy-network v1.7.3
[INFO] [stderr]     Checking alloy-provider v1.7.3
[INFO] [stderr]     Checking alloy-signer-local v1.7.3
[INFO] [stderr]     Checking alloy-contract v1.7.3
[INFO] [stderr]     Checking alloy v1.7.3
[INFO] [stderr]     Checking polymarket-client-sdk v0.4.2
[INFO] [stderr]     Checking poly_5min_bot v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `debug` and `trace`
[INFO] [stdout]   --> src/risk/hedge_monitor.rs:14:15
[INFO] [stdout]    |
[INFO] [stdout] 14 | use tracing::{debug, error, info, trace, warn};
[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: `debug`
[INFO] [stdout]  --> src/risk/positions.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing::{debug, info, trace};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug` and `trace`
[INFO] [stdout]   --> src/risk/hedge_monitor.rs:14:15
[INFO] [stdout]    |
[INFO] [stdout] 14 | use tracing::{debug, error, info, trace, warn};
[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: `debug`
[INFO] [stdout]  --> src/risk/positions.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tracing::{debug, info, trace};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `yes_final_size`
[INFO] [stdout]   --> src/monitor/arbitrage.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |         yes_final_size: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_yes_final_size`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `no_final_size`
[INFO] [stdout]   --> src/monitor/arbitrage.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |         no_final_size: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_no_final_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `yes_price`
[INFO] [stdout]   --> src/risk/manager.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |         yes_price: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_yes_price`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `no_price`
[INFO] [stdout]   --> src/risk/manager.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 |         no_price: Decimal,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_no_price`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `yes_final_size`
[INFO] [stdout]   --> src/monitor/arbitrage.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |         yes_final_size: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_yes_final_size`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `no_final_size`
[INFO] [stdout]   --> src/monitor/arbitrage.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |         no_final_size: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_no_final_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `yes_price`
[INFO] [stdout]   --> src/risk/manager.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |         yes_price: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_yes_price`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `no_price`
[INFO] [stdout]   --> src/risk/manager.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 |         no_price: Decimal,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_no_price`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `slug` is never read
[INFO] [stdout]   --> src/market/discoverer.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct MarketInfo {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 12 |     pub market_id: B256,
[INFO] [stdout] 13 |     pub slug: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MarketInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total_cost` is never read
[INFO] [stdout]   --> src/monitor/arbitrage.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct ArbitrageOpportunity {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub total_cost: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ArbitrageOpportunity` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `min_profit_threshold` and `max_depth` are never read
[INFO] [stdout]   --> src/monitor/arbitrage.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct ArbitrageDetector {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] 20 |     min_profit_threshold: Decimal,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     max_depth: usize, // 最大探测深度
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_book` is never used
[INFO] [stdout]    --> src/monitor/orderbook.rs:154:12
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl OrderBookMonitor {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn get_book(&self, token_id: U256) -> Option<BookUpdate> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/risk/hedge_monitor.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct HedgePosition {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 21 |     pub token_id: U256,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 22 |     pub opposite_token_id: U256, // 对立边的token_id（用于计算差值）
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     pub amount: Decimal,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 24 |     pub entry_price: Decimal, // 买入价格（卖一价）
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 25 |     pub take_profit_price: Decimal, // 止盈价格
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 26 |     pub stop_loss_price: Decimal,   // 止损价格
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 27 |     pub pair_id: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 28 |     pub market_display: String, // 市场显示名称（例如"btc预测市场"）
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 29 |     pub order_id: Option<String>, // 如果已下GTC订单，保存订单ID
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 30 |     pub pending_sell_amount: Decimal, // 待卖出的数量
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HedgePosition` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `client`, `private_key`, `proxy_address`, `positions`, and `position_tracker` are never read
[INFO] [stdout]   --> src/risk/hedge_monitor.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct HedgeMonitor {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 34 |     client: Client<polymarket_client_sdk::auth::state::Authenticated<polymarket_client_sdk::auth::Normal>>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 35 |     private_key: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 36 |     proxy_address: Option<Address>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 37 |     positions: DashMap<String, HedgePosition>, // pair_id -> position
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 38 |     position_tracker: Arc<PositionTracker>, // 用于更新风险敞口
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/risk/hedge_monitor.rs:58:12
[INFO] [stdout]     |
[INFO] [stdout]  41 | impl HedgeMonitor {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub fn add_position(&self, action: &RecoveryAction) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn update_entry_price(&self, pair_id: &str, entry_price: Decimal) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub async fn check_and_execute(&self, book: &BookUpdate) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 326 |     fn calculate_sell_amount(&self, position: &HedgePosition) -> Decimal {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     fn calculate_sell_amount_with_size(&self, position: &HedgePosition, base_amount: Decimal) -> Decimal {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 361 |     fn calculate_sell_amount_static(position: &HedgePosition, base_amount: Decimal) -> Decimal {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 391 |     async fn execute_sell_order(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 483 |     async fn sell_with_gtc(
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 592 |     pub fn remove_position(&self, pair_id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 598 |     pub fn get_positions(&self) -> Vec<HedgePosition> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Submitted` and `Recovering` are never constructed
[INFO] [stdout]   --> src/risk/manager.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum PairStatus {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 16 |     Submitted,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     Recovering,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PairStatus` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/risk/manager.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct OrderPair {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 26 |     pub pair_id: String,
[INFO] [stdout] 27 |     pub market_id: B256,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 28 |     pub yes_order_id: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 29 |     pub no_order_id: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 30 |     pub yes_token_id: U256,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 31 |     pub no_token_id: U256,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 32 |     pub yes_size: Decimal,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 33 |     pub no_size: Decimal,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub created_at: DateTime<Utc>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OrderPair` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `clob_client` is never read
[INFO] [stdout]   --> src/risk/manager.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct RiskManager {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 41 |     clob_client: Client<polymarket_client_sdk::auth::state::Authenticated<polymarket_client_sdk::auth::Normal>>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_order_size` is never read
[INFO] [stdout]   --> src/risk/position_balancer.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct PositionBalancer {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     max_order_size: Decimal,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `condition_id` is never read
[INFO] [stdout]    --> src/risk/position_balancer.rs:358:5
[INFO] [stdout]     |
[INFO] [stdout] 357 | struct MarketBalanceData {
[INFO] [stdout]     |        ----------------- field in this struct
[INFO] [stdout] 358 |     condition_id: B256,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `calculate_imbalance` and `is_within_limits` are never used
[INFO] [stdout]    --> src/risk/positions.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl PositionTracker {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn calculate_imbalance(&self, yes_token: U256, no_token: U256) -> Decimal {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn is_within_limits(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `SellExcess` and `MonitorForExit` are never constructed
[INFO] [stdout]   --> src/risk/recovery.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum RecoveryAction {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] 11 |     None,
[INFO] [stdout] 12 |     SellExcess { token_id: String, amount: Decimal },
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 13 |     MonitorForExit {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RecoveryAction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `take_profit_pct` and `stop_loss_pct` are never read
[INFO] [stdout]   --> src/risk/recovery.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct RecoveryStrategy {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] 27 |     imbalance_threshold: Decimal,
[INFO] [stdout] 28 |     take_profit_pct: Decimal, // 止盈百分比
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 29 |     stop_loss_pct: Decimal,   // 止损百分比
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `success` is never read
[INFO] [stdout]   --> src/trading/executor.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct OrderPairResult {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub success: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArbitrageRecord` is never constructed
[INFO] [stdout]   --> src/utils/arbitrage_logger.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct ArbitrageRecord {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_arbitrage_opportunity` is never used
[INFO] [stdout]   --> src/utils/arbitrage_logger.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn log_arbitrage_opportunity(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_arbitrage_opportunity_async` is never used
[INFO] [stdout]   --> src/utils/arbitrage_logger.rs:62:14
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub async fn log_arbitrage_opportunity_async(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `slug` is never read
[INFO] [stdout]   --> src/market/discoverer.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct MarketInfo {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 12 |     pub market_id: B256,
[INFO] [stdout] 13 |     pub slug: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MarketInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `total_cost` is never read
[INFO] [stdout]   --> src/monitor/arbitrage.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct ArbitrageOpportunity {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub total_cost: Decimal,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ArbitrageOpportunity` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `min_profit_threshold` and `max_depth` are never read
[INFO] [stdout]   --> src/monitor/arbitrage.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct ArbitrageDetector {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] 20 |     min_profit_threshold: Decimal,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     max_depth: usize, // 最大探测深度
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_book` is never used
[INFO] [stdout]    --> src/monitor/orderbook.rs:154:12
[INFO] [stdout]     |
[INFO] [stdout]  43 | impl OrderBookMonitor {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn get_book(&self, token_id: U256) -> Option<BookUpdate> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/risk/hedge_monitor.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct HedgePosition {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 21 |     pub token_id: U256,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 22 |     pub opposite_token_id: U256, // 对立边的token_id（用于计算差值）
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     pub amount: Decimal,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 24 |     pub entry_price: Decimal, // 买入价格（卖一价）
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 25 |     pub take_profit_price: Decimal, // 止盈价格
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 26 |     pub stop_loss_price: Decimal,   // 止损价格
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 27 |     pub pair_id: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 28 |     pub market_display: String, // 市场显示名称（例如"btc预测市场"）
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 29 |     pub order_id: Option<String>, // 如果已下GTC订单，保存订单ID
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 30 |     pub pending_sell_amount: Decimal, // 待卖出的数量
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HedgePosition` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `client`, `private_key`, `proxy_address`, `positions`, and `position_tracker` are never read
[INFO] [stdout]   --> src/risk/hedge_monitor.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct HedgeMonitor {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 34 |     client: Client<polymarket_client_sdk::auth::state::Authenticated<polymarket_client_sdk::auth::Normal>>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 35 |     private_key: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 36 |     proxy_address: Option<Address>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 37 |     positions: DashMap<String, HedgePosition>, // pair_id -> position
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 38 |     position_tracker: Arc<PositionTracker>, // 用于更新风险敞口
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/risk/hedge_monitor.rs:58:12
[INFO] [stdout]     |
[INFO] [stdout]  41 | impl HedgeMonitor {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  58 |     pub fn add_position(&self, action: &RecoveryAction) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn update_entry_price(&self, pair_id: &str, entry_price: Decimal) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub async fn check_and_execute(&self, book: &BookUpdate) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 326 |     fn calculate_sell_amount(&self, position: &HedgePosition) -> Decimal {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 331 |     fn calculate_sell_amount_with_size(&self, position: &HedgePosition, base_amount: Decimal) -> Decimal {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 361 |     fn calculate_sell_amount_static(position: &HedgePosition, base_amount: Decimal) -> Decimal {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 391 |     async fn execute_sell_order(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 483 |     async fn sell_with_gtc(
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 592 |     pub fn remove_position(&self, pair_id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 598 |     pub fn get_positions(&self) -> Vec<HedgePosition> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Submitted` and `Recovering` are never constructed
[INFO] [stdout]   --> src/risk/manager.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum PairStatus {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 16 |     Submitted,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     Recovering,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PairStatus` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/risk/manager.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct OrderPair {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 26 |     pub pair_id: String,
[INFO] [stdout] 27 |     pub market_id: B256,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 28 |     pub yes_order_id: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 29 |     pub no_order_id: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 30 |     pub yes_token_id: U256,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 31 |     pub no_token_id: U256,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 32 |     pub yes_size: Decimal,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 33 |     pub no_size: Decimal,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub created_at: DateTime<Utc>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OrderPair` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `clob_client` is never read
[INFO] [stdout]   --> src/risk/manager.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct RiskManager {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 41 |     clob_client: Client<polymarket_client_sdk::auth::state::Authenticated<polymarket_client_sdk::auth::Normal>>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `max_order_size` is never read
[INFO] [stdout]   --> src/risk/position_balancer.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct PositionBalancer {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     max_order_size: Decimal,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `condition_id` is never read
[INFO] [stdout]    --> src/risk/position_balancer.rs:358:5
[INFO] [stdout]     |
[INFO] [stdout] 357 | struct MarketBalanceData {
[INFO] [stdout]     |        ----------------- field in this struct
[INFO] [stdout] 358 |     condition_id: B256,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `calculate_imbalance` and `is_within_limits` are never used
[INFO] [stdout]    --> src/risk/positions.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | impl PositionTracker {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn calculate_imbalance(&self, yes_token: U256, no_token: U256) -> Decimal {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub fn is_within_limits(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `SellExcess` and `MonitorForExit` are never constructed
[INFO] [stdout]   --> src/risk/recovery.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum RecoveryAction {
[INFO] [stdout]    |          -------------- variants in this enum
[INFO] [stdout] 11 |     None,
[INFO] [stdout] 12 |     SellExcess { token_id: String, amount: Decimal },
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 13 |     MonitorForExit {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RecoveryAction` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `take_profit_pct` and `stop_loss_pct` are never read
[INFO] [stdout]   --> src/risk/recovery.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct RecoveryStrategy {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] 27 |     imbalance_threshold: Decimal,
[INFO] [stdout] 28 |     take_profit_pct: Decimal, // 止盈百分比
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 29 |     stop_loss_pct: Decimal,   // 止损百分比
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `success` is never read
[INFO] [stdout]   --> src/trading/executor.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct OrderPairResult {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub success: bool,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArbitrageRecord` is never constructed
[INFO] [stdout]   --> src/utils/arbitrage_logger.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct ArbitrageRecord {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_arbitrage_opportunity` is never used
[INFO] [stdout]   --> src/utils/arbitrage_logger.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn log_arbitrage_opportunity(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_arbitrage_opportunity_async` is never used
[INFO] [stdout]   --> src/utils/arbitrage_logger.rs:62:14
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub async fn log_arbitrage_opportunity_async(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 11s
[INFO] running `Command { std: "docker" "inspect" "ee406be22e96ce01ebbc109a53ddaaf4d44e79e85b8a4aa3070a7f109caf9b81", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ee406be22e96ce01ebbc109a53ddaaf4d44e79e85b8a4aa3070a7f109caf9b81", kill_on_drop: false }`
[INFO] [stdout] ee406be22e96ce01ebbc109a53ddaaf4d44e79e85b8a4aa3070a7f109caf9b81
