[INFO] fetching crate scope-bca-core 0.5.6...
[INFO] testing scope-bca-core-0.5.6 against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739-1
[INFO] extracting crate scope-bca-core 0.5.6 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate scope-bca-core 0.5.6
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate scope-bca-core 0.5.6
[INFO] tweaked toml for crates.io crate scope-bca-core 0.5.6 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate scope-bca-core 0.5.6 on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate scope-bca-core 0.5.6 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" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] fe8c66cbd394aa15cfce8dd5382f8a49b1b5f04e90b3f106a6ce2dcfb86ac82f
[INFO] running `Command { std: "docker" "start" "-a" "fe8c66cbd394aa15cfce8dd5382f8a49b1b5f04e90b3f106a6ce2dcfb86ac82f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fe8c66cbd394aa15cfce8dd5382f8a49b1b5f04e90b3f106a6ce2dcfb86ac82f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fe8c66cbd394aa15cfce8dd5382f8a49b1b5f04e90b3f106a6ce2dcfb86ac82f", kill_on_drop: false }`
[INFO] [stdout] fe8c66cbd394aa15cfce8dd5382f8a49b1b5f04e90b3f106a6ce2dcfb86ac82f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1d2018331ca3f5f5a750d7c8520ea33b846131699bddd973f6c6cdb92fc29bd8
[INFO] running `Command { std: "docker" "start" "-a" "1d2018331ca3f5f5a750d7c8520ea33b846131699bddd973f6c6cdb92fc29bd8", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling cc v1.2.55
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling alloc-no-stdlib v2.0.4
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling compression-core v0.4.31
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling alloc-stdlib v0.2.2
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling brotli-decompressor v5.0.0
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling zmij v1.0.19
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling ipnet v2.11.0
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling ryu v1.0.22
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling brotli v8.0.2
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling colored v2.2.0
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling clap_lex v0.7.7
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling owo-colors v4.2.3
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling rgb v0.8.52
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling drawille v0.3.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling clap_builder v4.5.57
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling textplots v0.8.7
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling bs58 v0.5.1
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling urlencoding v2.1.3
[INFO] [stderr]    Compiling compression-codecs v0.4.37
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling clap v4.5.57
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling rustls-webpki v0.103.12
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling async-compression v0.4.41
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling scope-bca-core v0.5.6 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 25.58s
[INFO] running `Command { std: "docker" "inspect" "1d2018331ca3f5f5a750d7c8520ea33b846131699bddd973f6c6cdb92fc29bd8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1d2018331ca3f5f5a750d7c8520ea33b846131699bddd973f6c6cdb92fc29bd8", kill_on_drop: false }`
[INFO] [stdout] 1d2018331ca3f5f5a750d7c8520ea33b846131699bddd973f6c6cdb92fc29bd8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6d534609be895b35bc7063b9a0d6028c11a546a93e62edb7c9e2e5b5332136e3
[INFO] running `Command { std: "docker" "start" "-a" "6d534609be895b35bc7063b9a0d6028c11a546a93e62edb7c9e2e5b5332136e3", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling zerocopy v0.8.38
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling colored v3.1.1
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling tempfile v3.24.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling async-compression v0.4.41
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling tokio-test v0.4.5
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling mockito v1.7.2
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling scope-bca-core v0.5.6 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 52.51s
[INFO] running `Command { std: "docker" "inspect" "6d534609be895b35bc7063b9a0d6028c11a546a93e62edb7c9e2e5b5332136e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6d534609be895b35bc7063b9a0d6028c11a546a93e62edb7c9e2e5b5332136e3", kill_on_drop: false }`
[INFO] [stdout] 6d534609be895b35bc7063b9a0d6028c11a546a93e62edb7c9e2e5b5332136e3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 70b79138ab477aec7332235bda3024784b83229c49b5b8a48a5bc98259304aab
[INFO] running `Command { std: "docker" "start" "-a" "70b79138ab477aec7332235bda3024784b83229c49b5b8a48a5bc98259304aab", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.42s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/scope-4d2bf4a09df20f94)
[INFO] [stdout] 
[INFO] [stdout] running 1248 tests
[INFO] [stdout] test chains::dex::tests::test_chain_mapping ... ok
[INFO] [stdout] test chains::dex::tests::test_chain_mapping_all_variants ... ok
[INFO] [stdout] test chains::dex::tests::test_estimate_7d_volume ... ok
[INFO] [stdout] test chains::dex::tests::test_dex_client_default ... ok
[INFO] [stdout] test chains::dex::tests::test_generate_volume_history ... ok
[INFO] [stdout] test chains::dex::tests::test_generate_price_history ... ok
[INFO] [stdout] test chains::dex::tests::test_get_native_token_price_unknown_chain ... ok
[INFO] [stdout] test chains::dex::tests::test_get_native_token_price_tron_returns_none ... ok
[INFO] [stdout] test chains::dex::tests::test_fetch_discover_tokens_empty_array ... ok
[INFO] [stdout] test chains::dex::tests::test_dex_data_source_trait_methods ... ok
[INFO] [stdout] test chains::dex::tests::test_dex_data_source_trait_get_native_token_price ... ok
[INFO] [stdout] test chains::dex::tests::test_dex_data_source_trait_get_token_data ... ok
[INFO] [stdout] test chains::dex::tests::test_fetch_discover_tokens_api_error ... ok
[INFO] [stdout] test chains::dex::tests::test_get_token_data_fallback_to_all_pairs ... ok
[INFO] [stdout] test chains::dex::tests::test_interpolate_points ... ok
[INFO] [stdout] test chains::dex::tests::test_interpolate_points_midpoint ... ok
[INFO] [stdout] test chains::dex::tests::test_dex_data_source_trait_search_tokens ... ok
[INFO] [stdout] test chains::dex::tests::test_get_token_data_multiple_pairs ... ok
[INFO] [stdout] test chains::dex::tests::test_get_token_profiles ... ok
[INFO] [stdout] test chains::dex::tests::test_fetch_discover_tokens_filters_invalid_entries ... ok
[INFO] [stdout] test chains::dex::tests::test_search_tokens_aggregates_volume_and_liquidity ... ok
[INFO] [stdout] test chains::dex::tests::test_search_tokens_api_error_500 ... ok
[INFO] [stdout] test chains::dex::tests::test_search_tokens_chain_filter_ethereum_only ... ok
[INFO] [stdout] test chains::dex::tests::test_get_token_boosts ... ok
[INFO] [stdout] test chains::dex::tests::test_get_native_token_price_ethereum ... ok
[INFO] [stdout] test chains::dex::tests::test_get_token_data_no_pairs ... ok
[INFO] [stdout] test chains::dex::tests::test_search_tokens_multiple_exact_matches_sort_by_liquidity ... ok
[INFO] [stdout] test chains::dex::tests::test_get_token_data_success ... ok
[INFO] [stdout] test chains::dex::tests::test_get_token_data_quote_token ... ok
[INFO] [stdout] test chains::dex::tests::test_search_tokens_api_error ... ok
[INFO] [stdout] test chains::dex::tests::test_search_tokens_empty ... ok
[INFO] [stdout] test chains::ethereum::tests::test_api_response_deserialization ... ok
[INFO] [stdout] test chains::dex::tests::test_get_token_data_with_socials ... ok
[INFO] [stdout] test chains::dex::tests::test_search_tokens_exact_match_sorted_first ... ok
[INFO] [stdout] test chains::ethereum::tests::test_build_api_url_no_chain_id_no_key ... ok
[INFO] [stdout] test chains::ethereum::tests::test_build_api_url_with_chain_id_and_key ... ok
[INFO] [stdout] test chains::dex::tests::test_get_token_price ... ok
[INFO] [stdout] test chains::dex::tests::test_get_token_price_not_found ... ok
[INFO] [stdout] test chains::dex::tests::test_search_tokens_no_results ... ok
[INFO] [stdout] test chains::dex::tests::test_search_tokens_exact_match_sorts_before_partial ... ok
[INFO] [stdout] test chains::dex::tests::test_get_token_data_api_error ... ok
[INFO] [stdout] test chains::ethereum::tests::test_chain_client_trait_get_token_holder_count ... ok
[INFO] [stdout] test chains::ethereum::tests::test_chain_client_trait_balance ... ok
[INFO] [stdout] test chains::ethereum::tests::test_chain_client_trait_get_block_number ... ok
[INFO] [stdout] test chains::ethereum::tests::test_ethereum_client_for_chain_aegis ... ok
[INFO] [stdout] test chains::dex::tests::test_search_tokens_success ... ok
[INFO] [stdout] test chains::ethereum::tests::test_chain_client_trait_get_token_holders ... ok
[INFO] [stdout] test chains::ethereum::tests::test_chain_client_trait_get_token_balances ... ok
[INFO] [stdout] test chains::dex::tests::test_search_tokens_with_chain_filter ... ok
[INFO] [stdout] test chains::ethereum::tests::test_ethereum_client_for_chain_base ... ok
[INFO] [stdout] test chains::ethereum::tests::test_chain_client_trait_get_token_info ... ok
[INFO] [stdout] test chains::ethereum::tests::test_chain_name_and_symbol_accessors ... ok
[INFO] [stdout] test chains::ethereum::tests::test_ethereum_client_for_chain_bsc ... ok
[INFO] [stdout] test chains::ethereum::tests::test_ethereum_client_for_chain_polygon ... ok
[INFO] [stdout] test chains::ethereum::tests::test_ethereum_client_for_chain_unsupported ... ok
[INFO] [stdout] test chains::ethereum::tests::test_ethereum_client_for_chain_ethereum ... ok
[INFO] [stdout] test chains::ethereum::tests::test_ethereum_client_with_base_url ... ok
[INFO] [stdout] test chains::ethereum::tests::test_chain_client_trait_get_transaction ... ok
[INFO] [stdout] test chains::ethereum::tests::test_ethereum_client_for_chain_optimism ... ok
[INFO] [stdout] test chains::ethereum::tests::test_ethereum_client_new ... ok
[INFO] [stdout] test chains::ethereum::tests::test_chain_client_trait_native_token_symbol ... ok
[INFO] [stdout] test chains::ethereum::tests::test_ethereum_client_for_chain_arbitrum ... ok
[INFO] [stdout] test chains::ethereum::tests::test_ethereum_client_default ... ok
[INFO] [stdout] test chains::ethereum::tests::test_chain_client_trait_get_transactions ... ok
[INFO] [stdout] test chains::ethereum::tests::test_ethereum_client_with_api_key ... ok
[INFO] [stdout] test chains::ethereum::tests::test_ethereum_client_for_chain_aegis_with_config ... ok
[INFO] [stdout] test chains::ethereum::tests::test_format_token_balance_millions ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_balance_explorer ... ok
[INFO] [stdout] test chains::ethereum::tests::test_format_token_balance_small ... ok
[INFO] [stdout] test chains::ethereum::tests::test_format_token_balance_thousands ... ok
[INFO] [stdout] test chains::ethereum::tests::test_format_token_balance_zero ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_balance_bsc_rpc_fallback_on_free_tier_restriction ... ok
[INFO] [stdout] test chains::ethereum::tests::test_format_token_balance_large ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_block_number ... ok
[INFO] [stdout] test chains::dex::tests::test_get_token_boosts_top ... ok
[INFO] [stdout] test chains::dex::tests::test_search_tokens_quote_match_and_updates ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_balance_invalid_address ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_balance_explorer_api_error_result_empty ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_balance_explorer_api_error ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_balance_explorer_api_error_result_hex ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_balance_rpc_empty_result ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_balance_rpc ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_balance_rpc_error ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_block_timestamp_not_found ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_block_timestamp ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_erc20_balances_empty ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_token_holder_count_empty ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_erc20_balances_zero_balance_skipped ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_token_holders ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_token_holder_count_small ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_token_holders_pro_key_required ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_token_holders_api_error ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_erc20_balances ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_token_info_unknown_token ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_transaction_explorer ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_token_info_unknown ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_token_info_supply_fallback_no_contract ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_token_holders_pro_required ... ok
[INFO] [stdout] test chains::ethereum::tests::test_parse_balance_wei_invalid ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_transaction_invalid_hash ... ok
[INFO] [stdout] test chains::ethereum::tests::test_parse_balance_wei_valid ... ok
[INFO] [stdout] test chains::ethereum::tests::test_parse_balance_wei_bsc_client ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_transactions_api_error ... ok
[INFO] [stdout] test chains::ethereum::tests::test_parse_balance_wei_zero ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_token_holders_success ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_token_info_success ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_transaction_explorer_not_found ... ok
[INFO] [stdout] test chains::ethereum::tests::test_try_get_contract_name_not_verified ... ok
[INFO] [stdout] test chains::ethereum::tests::test_tx_list_item_deserialization ... ok
[INFO] [stdout] test chains::ethereum::tests::test_try_get_contract_name_long_name ... ok
[INFO] [stdout] test chains::ethereum::tests::test_try_get_contract_name_long_lowercase ... ok
[INFO] [stdout] test chains::ethereum::tests::test_validate_eth_address_empty ... ok
[INFO] [stdout] test chains::ethereum::tests::test_try_get_contract_name_short_lowercase ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_transaction_with_null_block_number ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_transactions ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_transactions_no_transactions ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_transactions_empty_to_field ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_transaction_rpc ... ok
[INFO] [stdout] test chains::ethereum::tests::test_get_token_info_fallback_to_supply ... ok
[INFO] [stdout] test chains::ethereum::tests::test_validate_eth_address_lowercase ... ok
[INFO] [stdout] test chains::ethereum::tests::test_validate_eth_address_missing_prefix ... ok
[INFO] [stdout] test chains::ethereum::tests::test_validate_eth_address_only_prefix ... ok
[INFO] [stdout] test chains::ethereum::tests::test_validate_eth_address_too_short ... ok
[INFO] [stdout] test chains::ethereum::tests::test_validate_tx_hash_missing_prefix ... ok
[INFO] [stdout] test chains::ethereum::tests::test_validate_eth_address_valid ... ok
[INFO] [stdout] test chains::ethereum::tests::test_validate_tx_hash_only_prefix ... ok
[INFO] [stdout] test chains::ethereum::tests::test_validate_tx_hash_too_short ... ok
[INFO] [stdout] test chains::ethereum::tests::test_validate_eth_address_too_long ... ok
[INFO] [stdout] test chains::ethereum::tests::test_try_get_contract_name ... ok
[INFO] [stdout] test chains::ethereum::tests::test_validate_tx_hash_valid ... ok
[INFO] [stdout] test chains::ethereum::tests::test_validate_tx_hash_too_long ... ok
[INFO] [stdout] test chains::ethereum::tests::test_validate_tx_hash_empty ... ok
[INFO] [stdout] test chains::solana::tests::test_chain_client_trait_get_transactions_solana ... ok
[INFO] [stdout] test chains::ethereum::tests::test_validate_tx_hash_invalid_hex ... ok
[INFO] [stdout] test chains::solana::tests::test_enrich_balance_usd_invalid_raw_does_not_panic ... ok
[INFO] [stdout] test chains::solana::tests::test_chain_client_trait_get_transaction_solana ... ok
[INFO] [stdout] test chains::solana::tests::test_chain_client_trait_get_token_info ... ok
[INFO] [stdout] test chains::solana::tests::test_chain_client_trait_get_balance ... ok
[INFO] [stdout] test chains::ethereum::tests::test_validate_eth_address_invalid_hex ... ok
[INFO] [stdout] test chains::solana::tests::test_get_balance_invalid_address ... ok
[INFO] [stdout] test chains::solana::tests::test_chain_client_trait_get_block_number ... ok
[INFO] [stdout] test chains::solana::tests::test_chain_client_trait_enrich_balance_usd ... ok
[INFO] [stdout] test chains::solana::tests::test_chain_client_get_token_balances_short_mint ... ok
[INFO] [stdout] test chains::solana::tests::test_get_signatures ... ok
[INFO] [stdout] test chains::solana::tests::test_chain_client_trait_get_token_balances ... ok
[INFO] [stdout] test chains::solana::tests::test_get_balance_rpc_error ... ok
[INFO] [stdout] test chains::solana::tests::test_get_signatures_invalid_address ... ok
[INFO] [stdout] test chains::solana::tests::test_get_balance ... ok
[INFO] [stdout] test chains::solana::tests::test_get_balance_zero ... ok
[INFO] [stdout] test chains::solana::tests::test_get_signatures_empty_response ... ok
[INFO] [stdout] test chains::solana::tests::test_get_slot ... ok
[INFO] [stdout] test chains::solana::tests::test_get_balance_empty_response ... ok
[INFO] [stdout] test chains::solana::tests::test_get_token_info_invalid_address ... ok
[INFO] [stdout] test chains::solana::tests::test_get_slot_empty_response ... ok
[INFO] [stdout] test chains::solana::tests::test_get_token_info_data_too_short ... ok
[INFO] [stdout] test chains::solana::tests::test_get_token_balances_rpc_error ... ok
[INFO] [stdout] test chains::solana::tests::test_get_slot_error ... ok
[INFO] [stdout] test chains::solana::tests::test_get_signatures_rpc_error ... ok
[INFO] [stdout] test chains::solana::tests::test_get_token_balances ... ok
[INFO] [stdout] test chains::solana::tests::test_get_transaction_invalid_signature ... ok
[INFO] [stdout] test chains::solana::tests::test_get_token_info_decimals_nine ... ok
[INFO] [stdout] test chains::solana::tests::test_get_token_balances_ui_amount_null ... ok
[INFO] [stdout] test chains::solana::tests::test_get_transaction_meta_no_fee ... ok
[INFO] [stdout] test chains::solana::tests::test_get_transactions_invalid_address ... ok
[INFO] [stdout] test chains::solana::tests::test_rpc_error_deserialization ... ok
[INFO] [stdout] test chains::solana::tests::test_get_transaction_string_account_keys ... ok
[INFO] [stdout] test chains::solana::tests::test_rpc_request_serialization ... ok
[INFO] [stdout] test chains::solana::tests::test_get_token_info_empty_data_array ... ok
[INFO] [stdout] test chains::solana::tests::test_get_token_info_no_account_data ... ok
[INFO] [stdout] test chains::solana::tests::test_rpc_error_response ... ok
[INFO] [stdout] test chains::solana::tests::test_rpc_response_deserialization ... ok
[INFO] [stdout] test chains::solana::tests::test_get_token_info_invalid_base64 ... ok
[INFO] [stdout] test chains::solana::tests::test_solana_chain_client_trait_chain_name ... ok
[INFO] [stdout] test chains::solana::tests::test_get_transaction_minimal_no_transaction_meta ... ok
[INFO] [stdout] test chains::solana::tests::test_get_token_info_not_found ... ok
[INFO] [stdout] test chains::solana::tests::test_get_transaction_failed ... ok
[INFO] [stdout] test chains::solana::tests::test_solana_client_new_with_api_key ... ok
[INFO] [stdout] test chains::solana::tests::test_get_token_info_rpc_error ... ok
[INFO] [stdout] test chains::solana::tests::test_solana_client_new_with_custom_rpc ... ok
[INFO] [stdout] test chains::solana::tests::test_get_transaction_rpc_error ... ok
[INFO] [stdout] test chains::solana::tests::test_solana_client_default ... ok
[INFO] [stdout] test chains::solana::tests::test_get_transaction_not_found ... ok
[INFO] [stdout] test chains::solana::tests::test_get_token_info_success ... ok
[INFO] [stdout] test chains::solana::tests::test_solscan_account_info_deserialization ... ok
[INFO] [stdout] test chains::solana::tests::test_get_transaction ... ok
[INFO] [stdout] test chains::solana::tests::test_solana_client_with_rpc_url ... ok
[INFO] [stdout] test chains::solana::tests::test_validate_solana_address_empty ... ok
[INFO] [stdout] test chains::solana::tests::test_token_balance_serialization ... ok
[INFO] [stdout] test chains::solana::tests::test_validate_solana_address_invalid_base58 ... ok
[INFO] [stdout] test chains::solana::tests::test_validate_solana_address_too_long ... ok
[INFO] [stdout] test chains::solana::tests::test_validate_solana_address_too_short ... ok
[INFO] [stdout] test chains::solana::tests::test_validate_solana_address_valid ... ok
[INFO] [stdout] test chains::solana::tests::test_validate_solana_address_wrong_decoded_length ... ok
[INFO] [stdout] test chains::solana::tests::test_validate_solana_signature_empty ... ok
[INFO] [stdout] test chains::solana::tests::test_validate_solana_signature_invalid_base58 ... ok
[INFO] [stdout] test chains::solana::tests::test_get_transaction_single_account_key_to_none ... ok
[INFO] [stdout] test chains::solana::tests::test_validate_solana_signature_too_long ... ok
[INFO] [stdout] test chains::solana::tests::test_get_transaction_value_zero_when_no_send ... ok
[INFO] [stdout] test chains::solana::tests::test_validate_solana_signature_too_short ... ok
[INFO] [stdout] test chains::solana::tests::test_get_transactions ... ok
[INFO] [stdout] test chains::solana::tests::test_validate_solana_signature_valid ... ok
[INFO] [stdout] test chains::solana::tests::test_validate_solana_signature_wrong_byte_length ... ok
[INFO] [stdout] test chains::solana::tests::test_validate_solana_signature_wrong_decoded_length ... ok
[INFO] [stdout] test chains::tests::test_analyze_gas_usage_empty_transactions ... ok
[INFO] [stdout] test chains::tests::test_analyze_gas_usage_failed_tx ... ok
[INFO] [stdout] test chains::tests::test_analyze_gas_usage_gas_by_function ... ok
[INFO] [stdout] test chains::tests::test_analyze_gas_usage_gas_used_none ... ok
[INFO] [stdout] test chains::tests::test_analyze_gas_usage_input_0x_transfer ... ok
[INFO] [stdout] test chains::tests::test_analyze_gas_usage_input_empty_transfer ... ok
[INFO] [stdout] test chains::tests::test_analyze_gas_usage_multiple_txs ... ok
[INFO] [stdout] test chains::tests::test_analyze_gas_usage_short_input_uses_full_input_as_selector ... ok
[INFO] [stdout] test chains::tests::test_analyze_gas_usage_single_tx ... ok
[INFO] [stdout] test chains::tests::test_balance_debug ... ok
[INFO] [stdout] test chains::tests::test_balance_serialization ... ok
[INFO] [stdout] test chains::tests::test_balance_without_usd ... ok
[INFO] [stdout] test chains::tests::test_chain_client_default_get_code ... ok
[INFO] [stdout] test chains::tests::test_chain_client_default_get_token_holder_count ... ok
[INFO] [stdout] test chains::tests::test_chain_client_default_get_token_holders ... ok
[INFO] [stdout] test chains::tests::test_chain_client_default_get_token_info ... ok
[INFO] [stdout] test chains::tests::test_chain_metadata_arbitrum ... ok
[INFO] [stdout] test chains::tests::test_chain_metadata_bsc ... ok
[INFO] [stdout] test chains::tests::test_chain_metadata_case_insensitive ... ok
[INFO] [stdout] test chains::tests::test_chain_metadata_ethereum ... ok
[INFO] [stdout] test chains::tests::test_chain_metadata_base ... ok
[INFO] [stdout] test chains::tests::test_chain_metadata_ethereum_alias ... ok
[INFO] [stdout] test chains::tests::test_chain_metadata_optimism ... ok
[INFO] [stdout] test chains::tests::test_chain_metadata_polygon ... ok
[INFO] [stdout] test chains::tests::test_chain_metadata_solana ... ok
[INFO] [stdout] test chains::tests::test_chain_metadata_solana_alias ... ok
[INFO] [stdout] test chains::tests::test_chain_metadata_tron ... ok
[INFO] [stdout] test chains::tests::test_chain_metadata_tron_alias ... ok
[INFO] [stdout] test chains::tests::test_chain_metadata_unknown ... ok
[INFO] [stdout] test chains::tests::test_contract_creation_transaction ... ok
[INFO] [stdout] test chains::tests::test_default_client_factory_create_arbitrum_client ... ok
[INFO] [stdout] test chains::tests::test_default_client_factory_create_dex_client ... ok
[INFO] [stdout] test chains::tests::test_default_client_factory_create_base_client ... ok
[INFO] [stdout] test chains::tests::test_default_client_factory_create_polygon_client ... ok
[INFO] [stdout] test chains::tests::test_default_client_factory_create_optimism_client ... ok
[INFO] [stdout] test chains::tests::test_default_client_factory_create_ethereum_client ... ok
[INFO] [stdout] test chains::tests::test_default_client_factory_create_tron_client ... ok
[INFO] [stdout] test chains::tests::test_default_client_factory_create_sol_alias ... ok
[INFO] [stdout] test chains::tests::test_default_client_factory_create_trx_alias ... ok
[INFO] [stdout] test chains::tests::test_default_client_factory_create_solana_client ... ok
[INFO] [stdout] test chains::tests::test_default_client_factory_create_unsupported_chain_returns_err ... ok
[INFO] [stdout] test chains::tests::test_default_get_token_holder_count ... ok
[INFO] [stdout] test chains::tests::test_ethereum_client_new_with_http ... ok
[INFO] [stdout] test chains::tests::test_dex_client_new_with_http ... ok
[INFO] [stdout] test chains::tests::test_infer_chain_from_address_invalid ... ok
[INFO] [stdout] test chains::tests::test_infer_chain_from_address_evm ... ok
[INFO] [stdout] test chains::tests::test_default_get_token_info ... ok
[INFO] [stdout] test chains::tests::test_default_get_token_holders ... ok
[INFO] [stdout] test chains::tests::test_infer_chain_from_hash_evm ... ok
[INFO] [stdout] test chains::tests::test_infer_chain_from_address_tron ... ok
[INFO] [stdout] test chains::tests::test_infer_chain_from_address_solana ... ok
[INFO] [stdout] test chains::tests::test_factory_shares_http_transport ... ok
[INFO] [stdout] test chains::tests::test_infer_chain_from_hash_tron ... ok
[INFO] [stdout] test chains::tests::test_infer_chain_from_hash_solana ... ok
[INFO] [stdout] test chains::tests::test_mock_chain_client_block_number ... ok
[INFO] [stdout] test chains::tests::test_ethereum_client_for_chain_with_http ... ok
[INFO] [stdout] test chains::tests::test_mock_client_factory_creates_chain_client ... ok
[INFO] [stdout] test chains::tests::test_mock_client_factory_creates_dex_client ... ok
[INFO] [stdout] test chains::tests::test_mock_chain_client_balance ... ok
[INFO] [stdout] test chains::tests::test_infer_chain_from_hash_invalid ... ok
[INFO] [stdout] test chains::tests::test_native_symbol_optimism ... ok
[INFO] [stdout] test chains::tests::test_mock_chain_client_transaction ... ok
[INFO] [stdout] test chains::tests::test_mock_dex_source_data ... ok
[INFO] [stdout] test chains::tests::test_native_symbol_arbitrum ... ok
[INFO] [stdout] test chains::tests::test_native_symbol_polygon ... ok
[INFO] [stdout] test chains::tests::test_native_symbol_base ... ok
[INFO] [stdout] test chains::tests::test_mock_dex_source_search ... ok
[INFO] [stdout] test chains::tests::test_native_symbol_bsc ... ok
[INFO] [stdout] test chains::tests::test_native_symbol_case_insensitive ... ok
[INFO] [stdout] test chains::tests::test_mock_dex_source_native_price ... ok
[INFO] [stdout] test chains::tests::test_native_symbol_ethereum ... ok
[INFO] [stdout] test chains::tests::test_native_symbol_solana ... ok
[INFO] [stdout] test chains::tests::test_native_symbol_tron ... ok
[INFO] [stdout] test chains::tests::test_native_symbol_unknown ... ok
[INFO] [stdout] test chains::tests::test_pending_transaction_serialization ... ok
[INFO] [stdout] test chains::tests::test_token_serialization ... ok
[INFO] [stdout] test chains::tests::test_solana_client_new_with_http ... ok
[INFO] [stdout] test chains::tests::test_transaction_debug ... ok
[INFO] [stdout] test chains::tests::test_token_balance_serialization ... ok
[INFO] [stdout] test chains::tests::test_transaction_serialization ... ok
[INFO] [stdout] test chains::tron::tests::test_account_response_with_error_field ... ok
[INFO] [stdout] test chains::tests::test_tron_client_new_with_http ... ok
[INFO] [stdout] test chains::tron::tests::test_chain_client_get_token_holders_invalid_address ... ok
[INFO] [stdout] test chains::tron::tests::test_chain_client_get_token_holder_count_invalid_address ... ok
[INFO] [stdout] test chains::tron::tests::test_chain_client_get_token_info_invalid_address ... ok
[INFO] [stdout] test chains::tron::tests::test_account_response_trc20_balances ... ok
[INFO] [stdout] test chains::tron::tests::test_account_response_deserialization ... ok
[INFO] [stdout] test chains::tron::tests::test_chain_client_trait_get_block_number ... ok
[INFO] [stdout] test chains::tron::tests::test_dex_search_response_deserialization ... ok
[INFO] [stdout] test chains::tron::tests::test_dex_search_response_empty ... ok
[INFO] [stdout] test chains::tron::tests::test_full_transaction_deserialization ... ok
[INFO] [stdout] test chains::tron::tests::test_dex_search_pair_wtrx ... ok
[INFO] [stdout] test chains::tron::tests::test_get_balance_invalid_address ... ok
[INFO] [stdout] test chains::tron::tests::test_dex_search_response_no_pairs ... ok
[INFO] [stdout] test chains::tron::tests::test_get_block_number_invalid_response ... ok
[INFO] [stdout] test chains::tron::tests::test_get_block_number ... ok
[INFO] [stdout] test chains::tron::tests::test_get_block_number_block_header_none ... ok
[INFO] [stdout] test chains::tron::tests::test_get_balance_api_error ... ok
[INFO] [stdout] test chains::tron::tests::test_get_balance_with_api_key ... ok
[INFO] [stdout] test chains::tron::tests::test_enrich_balance_usd_no_panic ... ok
[INFO] [stdout] test chains::tron::tests::test_get_token_info_no_tokens ... ok
[INFO] [stdout] test chains::tron::tests::test_get_token_holders_invalid_address ... ok
[INFO] [stdout] test chains::tron::tests::test_get_token_info_invalid_address ... ok
[INFO] [stdout] test chains::tron::tests::test_get_token_info_missing_field ... ok
[INFO] [stdout] test chains::tron::tests::test_get_token_holder_count_invalid_address ... ok
[INFO] [stdout] test chains::tron::tests::test_get_token_info_success ... ok
[INFO] [stdout] test chains::tron::tests::test_get_block_number_raw_data_none ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transaction_invalid_hash ... ok
[INFO] [stdout] test chains::tron::tests::test_get_block_number_number_none ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transaction_api_error_unknown ... ok
[INFO] [stdout] test chains::tron::tests::test_get_balance_api_error_unknown_error ... ok
[INFO] [stdout] test chains::tron::tests::test_chain_client_trait_get_balance ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transaction_api_error ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transaction ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transaction_amount_none ... ok
[INFO] [stdout] test chains::tron::tests::test_chain_client_trait_get_token_balances ... ok
[INFO] [stdout] test chains::tron::tests::test_get_balance_error_response ... ok
[INFO] [stdout] test chains::tron::tests::test_get_balance ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transaction_no_raw_data ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transaction_to_address_none ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transaction_failed ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transaction_success ... ok
[INFO] [stdout] test chains::tron::tests::test_get_balance_new_account ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transaction_status_none ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transaction_no_ret_field ... ok
[INFO] [stdout] test chains::solana::tests::test_solana_client_new ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transaction_not_found ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transactions_invalid_address ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transaction_tron_success ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transactions_success ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transaction_tron_error ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transactions_tron_success ... ok
[INFO] [stdout] test chains::tron::tests::test_token_holder_count_parsing ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transactions_api_error_unknown ... ok
[INFO] [stdout] test chains::tron::tests::test_trc20_token_balance_debug_format ... ok
[INFO] [stdout] test chains::tron::tests::test_get_trc20_balances ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transactions ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transactions_error ... ok
[INFO] [stdout] test chains::tron::tests::test_get_trc20_balances_with_api_key ... ok
[INFO] [stdout] test chains::tron::tests::test_get_trc20_balances_empty_account ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transactions_with_minimal_contract_data ... ok
[INFO] [stdout] test chains::tron::tests::test_chain_client_trait_get_transactions_tron ... ok
[INFO] [stdout] test chains::tron::tests::test_chain_client_trait_get_transaction_tron ... ok
[INFO] [stdout] test chains::tron::tests::test_get_trc20_balances_api_error_unknown ... ok
[INFO] [stdout] test chains::tron::tests::test_transaction_list_response_with_error ... ok
[INFO] [stdout] test chains::tron::tests::test_transaction_response_deserialization ... ok
[INFO] [stdout] test chains::tron::tests::test_tron_client_default_trait ... ok
[INFO] [stdout] test chains::tron::tests::test_tron_client_default ... ok
[INFO] [stdout] test chains::tron::tests::test_tron_chain_client_trait_accessors ... ok
[INFO] [stdout] test chains::tron::tests::test_get_transactions_tron_error ... ok
[INFO] [stdout] test chains::tron::tests::test_token_holder_response_parsing ... ok
[INFO] [stdout] test chains::tron::tests::test_trc20_token_balance_struct ... ok
[INFO] [stdout] test chains::tron::tests::test_validate_tron_address_bad_checksum ... ok
[INFO] [stdout] test chains::tron::tests::test_validate_tron_address_invalid_base58 ... ok
[INFO] [stdout] test chains::tron::tests::test_validate_tron_address_too_long ... ok
[INFO] [stdout] test chains::tron::tests::test_tron_client_new_with_custom_api ... ok
[INFO] [stdout] test chains::tron::tests::test_validate_tron_address_empty ... ok
[INFO] [stdout] test chains::tron::tests::test_validate_tron_address_too_short ... ok
[INFO] [stdout] test chains::tron::tests::test_validate_tron_address_valid ... ok
[INFO] [stdout] test chains::tron::tests::test_validate_tron_address_wrong_prefix ... ok
[INFO] [stdout] test chains::tron::tests::test_validate_tron_address_wrong_decoded_length ... ok
[INFO] [stdout] test chains::tron::tests::test_validate_tron_tx_hash_empty ... ok
[INFO] [stdout] test chains::tron::tests::test_get_trc20_balances_error_response ... ok
[INFO] [stdout] test chains::tron::tests::test_get_trc20_balances_no_data ... ok
[INFO] [stdout] test chains::tron::tests::test_tron_client_new ... ok
[INFO] [stdout] test chains::tron::tests::test_tron_client_new_with_api_key ... ok
[INFO] [stdout] test chains::tron::tests::test_tron_client_with_api_url ... ok
[INFO] [stdout] test chains::tron::tests::test_validate_tron_tx_hash_invalid_hex ... ok
[INFO] [stdout] test chains::tron::tests::test_validate_tron_tx_hash_too_short ... ok
[INFO] [stdout] test chains::tron::tests::test_validate_tron_tx_hash_valid ... ok
[INFO] [stdout] test chains::tron::tests::test_validate_tron_tx_hash_wrong_length ... ok
[INFO] [stdout] test compliance::datasource::tests::test_analyze_patterns_invalid_timestamps_skipped ... ok
[INFO] [stdout] test compliance::datasource::tests::test_analyze_patterns_invalid_value_skipped ... ok
[INFO] [stdout] test compliance::datasource::tests::test_analyze_patterns_single_transaction_no_velocity ... ok
[INFO] [stdout] test compliance::datasource::tests::test_blockchain_data_client_creation ... ok
[INFO] [stdout] test compliance::datasource::tests::test_data_sources_clone ... ok
[INFO] [stdout] test compliance::datasource::tests::test_data_sources_creation ... ok
[INFO] [stdout] test compliance::datasource::tests::test_data_sources_debug ... ok
[INFO] [stdout] test compliance::datasource::tests::test_data_sources_etherscan_key ... ok
[INFO] [stdout] test compliance::datasource::tests::test_etherscan_response_deserialization ... ok
[INFO] [stdout] test compliance::datasource::tests::test_etherscan_response_with_result ... ok
[INFO] [stdout] test compliance::datasource::tests::test_etherscan_transaction_clone_and_debug ... ok
[INFO] [stdout] test compliance::datasource::tests::test_pattern_analysis_all_unusual_hours ... ok
[INFO] [stdout] test compliance::datasource::tests::test_get_etherscan_transactions_malformed_json ... ok
[INFO] [stdout] test compliance::datasource::tests::test_get_internal_transactions_api_error ... ok
[INFO] [stdout] test compliance::datasource::tests::test_get_internal_transactions_null_result ... ok
[INFO] [stdout] test compliance::datasource::tests::test_pattern_analysis_debug_and_clone ... ok
[INFO] [stdout] test compliance::datasource::tests::test_pattern_analysis_default ... ok
[INFO] [stdout] test compliance::datasource::tests::test_pattern_analysis_empty ... ok
[INFO] [stdout] test compliance::datasource::tests::test_get_internal_transactions ... ok
[INFO] [stdout] test compliance::datasource::tests::test_pattern_analysis_round_numbers ... ok
[INFO] [stdout] test compliance::datasource::tests::test_pattern_analysis_structuring_detection ... ok
[INFO] [stdout] test compliance::datasource::tests::test_pattern_analysis_failed_transactions ... ok
[INFO] [stdout] test compliance::datasource::tests::test_get_etherscan_transactions_http_500 ... ok
[INFO] [stdout] test compliance::datasource::tests::test_get_transactions_mainnet_alias ... ok
[INFO] [stdout] test compliance::datasource::tests::test_pattern_analysis_unusual_hours ... ok
[INFO] [stdout] test compliance::datasource::tests::test_pattern_analysis_high_velocity ... ok
[INFO] [stdout] test compliance::datasource::tests::test_get_etherscan_transactions_api_error ... ok
[INFO] [stdout] test compliance::datasource::tests::test_get_transactions_unsupported_chain ... ok
[INFO] [stdout] test compliance::datasource::tests::test_pattern_analysis_mixed_patterns ... ok
[INFO] [stdout] test compliance::risk::tests::test_calculate_weighted_score_empty ... ok
[INFO] [stdout] test compliance::risk::tests::test_assess_address_has_all_factors ... ok
[INFO] [stdout] test compliance::risk::tests::test_assess_address_generates_all_factors ... ok
[INFO] [stdout] test compliance::risk::tests::test_assess_address_score_in_bounds ... ok
[INFO] [stdout] test compliance::risk::tests::test_assess_address_factors_have_evidence ... ok
[INFO] [stdout] test compliance::datasource::tests::test_pattern_analysis_velocity ... ok
[INFO] [stdout] test compliance::datasource::tests::test_trace_hop_debug_and_clone ... ok
[INFO] [stdout] test compliance::datasource::tests::test_get_etherscan_transactions_success ... ok
[INFO] [stdout] test compliance::datasource::tests::test_transaction_trace_creation ... ok
[INFO] [stdout] test compliance::risk::tests::test_all_risk_categories ... ok
[INFO] [stdout] test compliance::risk::tests::test_analyze_patterns_high_velocity ... ok
[INFO] [stdout] test compliance::risk::tests::test_analyze_patterns_round_numbers ... ok
[INFO] [stdout] test compliance::datasource::tests::test_get_token_transfers ... ok
[INFO] [stdout] test compliance::datasource::tests::test_trace_transaction ... ok
[INFO] [stdout] test compliance::risk::tests::test_generate_recommendations_critical ... ok
[INFO] [stdout] test compliance::risk::tests::test_analyze_patterns_structuring ... ok
[INFO] [stdout] test compliance::risk::tests::test_generate_recommendations_low_risk ... ok
[INFO] [stdout] test compliance::risk::tests::test_generate_recommendations_high ... ok
[INFO] [stdout] test compliance::risk::tests::test_generate_recommendations_high_risk ... ok
[INFO] [stdout] test compliance::risk::tests::test_generate_recommendations_medium ... ok
[INFO] [stdout] test compliance::risk::tests::test_gini_all_zeros ... ok
[INFO] [stdout] test compliance::risk::tests::test_gini_coefficient_concentrated ... ok
[INFO] [stdout] test compliance::risk::tests::test_gini_coefficient_empty ... ok
[INFO] [stdout] test compliance::risk::tests::test_gini_coefficient_equal_distribution ... ok
[INFO] [stdout] test compliance::risk::tests::test_gini_single_element ... ok
[INFO] [stdout] test compliance::risk::tests::test_gini_two_equal ... ok
[INFO] [stdout] test compliance::risk::tests::test_generate_recommendations_with_high_score_factor ... ok
[INFO] [stdout] test compliance::risk::tests::test_gini_two_unequal ... ok
[INFO] [stdout] test compliance::risk::tests::test_multisig_confirm_execute ... ok
[INFO] [stdout] test compliance::risk::tests::test_multisig_gnosis ... ok
[INFO] [stdout] test compliance::risk::tests::test_multisig_with_proxy_admin ... ok
[INFO] [stdout] test compliance::risk::tests::test_no_timelock ... ok
[INFO] [stdout] test compliance::risk::tests::test_pattern_analysis_no_round_numbers ... ok
[INFO] [stdout] test compliance::risk::tests::test_pattern_analysis_single_tx ... ok
[INFO] [stdout] test compliance::risk::tests::test_pattern_analysis_no_structuring ... ok
[INFO] [stdout] test compliance::risk::tests::test_recommendations_critical_includes_sar ... ok
[INFO] [stdout] test compliance::risk::tests::test_recommendations_medium_includes_reassessment ... ok
[INFO] [stdout] test compliance::risk::tests::test_recommendations_by_level ... ok
[INFO] [stdout] test compliance::risk::tests::test_multisig_threshold_owners ... ok
[INFO] [stdout] test compliance::risk::tests::test_risk_assessment_json_roundtrip ... ok
[INFO] [stdout] test compliance::risk::tests::test_recommendations_high_score_factors ... ok
[INFO] [stdout] test compliance::risk::tests::test_no_multisig ... ok
[INFO] [stdout] test compliance::risk::tests::test_risk_assessment_different_addresses ... ok
[INFO] [stdout] test compliance::risk::tests::test_risk_engine_with_data_client ... ok
[INFO] [stdout] test compliance::risk::tests::test_risk_assessment_serialization ... ok
[INFO] [stdout] test compliance::risk::tests::test_risk_engine_with_data_client_self_transfers ... ok
[INFO] [stdout] test compliance::risk::tests::test_risk_engine_default ... ok
[INFO] [stdout] test compliance::risk::tests::test_risk_factor_creation ... ok
[INFO] [stdout] test compliance::risk::tests::test_risk_level_boundaries ... ok
[INFO] [stdout] test compliance::risk::tests::test_risk_factor_serialization ... ok
[INFO] [stdout] test compliance::risk::tests::test_risk_level_from_score ... ok
[INFO] [stdout] test compliance::risk::tests::test_rugpull_honeypot ... ok
[INFO] [stdout] test compliance::risk::tests::test_risk_level_emojis ... ok
[INFO] [stdout] test compliance::risk::tests::test_risk_engine_creation ... ok
[INFO] [stdout] test compliance::risk::tests::test_recommendations_high_includes_verify_source ... ok
[INFO] [stdout] test compliance::risk::tests::test_rugpull_high_concentration ... ok
[INFO] [stdout] test compliance::risk::tests::test_risk_engine_with_data_client_api_error ... ok
[INFO] [stdout] test compliance::risk::tests::test_rugpull_recently_created ... ok
[INFO] [stdout] test compliance::risk::tests::test_rugpull_very_new_token ... ok
[INFO] [stdout] test compliance::risk::tests::test_timelock_controller_detected ... ok
[INFO] [stdout] test compliance::risk::tests::test_timelock_mindelay ... ok
[INFO] [stdout] test compliance::risk::tests::test_timelock_no_source ... ok
[INFO] [stdout] test compliance::risk::tests::test_weighted_score_calculation ... ok
[INFO] [stdout] test compliance::risk::tests::test_rugpull_indicators_none ... ok
[INFO] [stdout] test compliance::risk::tests::test_risk_engine_with_client_structuring_pattern ... ok
[INFO] [stdout] test compliance::risk::tests::test_risk_engine_with_client_api_error ... ok
[INFO] [stdout] test compliance::risk::tests::test_rugpull_low_liquidity ... ok
[INFO] [stdout] test compliance::risk::tests::test_rugpull_mint_evidence ... ok
[INFO] [stdout] test compliance::risk::tests::test_rugpull_moderate_concentration ... ok
[INFO] [stdout] test compliance::risk::tests::test_rugpull_pause_blacklist_setfee ... ok
[INFO] [stdout] test compliance::risk::tests::test_rugpull_renounced_reduces_risk ... ok
[INFO] [stdout] test compliance::risk::tests::test_weighted_score_clamped ... ok
[INFO] [stdout] test compliance::risk::tests::test_rugpull_unverified ... ok
[INFO] [stdout] test compliance::risk::tests::test_rugpull_tx_origin ... ok
[INFO] [stdout] test compliance::risk::tests::test_risk_engine_with_data_client_assess ... ok
[INFO] [stdout] test compliance::risk::tests::test_weighted_score_empty_factors ... ok
[INFO] [stdout] test compliance::risk::tests::test_weighted_score_single_factor ... ok
[INFO] [stdout] test compliance::risk::tests::test_weighted_score_zero_weight ... ok
[INFO] [stdout] test compliance::risk::tests::test_whale_detection_no_whales ... ok
[INFO] [stdout] test compliance::risk::tests::test_whale_with_large_txs ... ok
[INFO] [stdout] test compliance::tests::test_compliance_analyzer_default ... ok
[INFO] [stdout] test compliance::tests::test_compliance_analyzer_new ... ok
[INFO] [stdout] test compliance::tests::test_match_type_variants ... ok
[INFO] [stdout] test compliance::tests::test_sanctions_check_result ... ok
[INFO] [stdout] test compliance::tests::test_compliance_analyze_address ... ok
[INFO] [stdout] test compliance::tests::test_sanctions_check_result_debug ... ok
[INFO] [stdout] test compliance::tests::test_sanctions_check_result_empty_lists ... ok
[INFO] [stdout] test compliance::tests::test_sanctions_match_clone ... ok
[INFO] [stdout] test compliance::tests::test_sanctions_match_debug ... ok
[INFO] [stdout] test compliance::tests::test_sanctions_match_found ... ok
[INFO] [stdout] test compliance::tests::test_sanctions_no_match_summary ... ok
[INFO] [stdout] test config::tests::test_address_book_config_default ... ok
[INFO] [stdout] test compliance::tests::test_sanctions_check_result_sanctioned_summary ... ok
[INFO] [stdout] test config::tests::test_config_clone_and_eq ... ok
[INFO] [stdout] test compliance::risk::tests::test_whale_avg_near_threshold ... ok
[INFO] [stdout] test config::tests::test_chains_config_default ... ok
[INFO] [stdout] test config::tests::test_chains_config_with_multiple_api_keys ... ok
[INFO] [stdout] test config::tests::test_config_debug ... ok
[INFO] [stdout] test compliance::risk::tests::test_timelock_queue_delay_execute ... ok
[INFO] [stdout] test config::tests::test_config_default_ghola_disabled ... ok
[INFO] [stdout] test config::tests::test_data_dir_uses_config_value ... ok
[INFO] [stdout] test config::tests::test_default_config ... ok
[INFO] [stdout] test config::tests::test_default_path_is_absolute_or_relative ... ok
[INFO] [stdout] test config::tests::test_default_path_returns_valid_path ... ok
[INFO] [stdout] test config::tests::test_ghola_config_default ... ok
[INFO] [stdout] test config::tests::test_default_data_dir ... ok
[INFO] [stdout] test config::tests::test_config_path_returns_some ... ok
[INFO] [stdout] test config::tests::test_data_dir_falls_back_to_default ... ok
[INFO] [stdout] test config::tests::test_output_config_default ... ok
[INFO] [stdout] test config::tests::test_config_serialization_roundtrip ... ok
[INFO] [stdout] test config::tests::test_output_format_default ... ok
[INFO] [stdout] test config::tests::test_ghola_config_serialization_roundtrip ... ok
[INFO] [stdout] test config::tests::test_output_format_display ... ok
[INFO] [stdout] test contract::abi::tests::test_build_selector_map ... ok
[INFO] [stdout] test config::tests::test_output_format_serialization ... ok
[INFO] [stdout] test config::tests::test_load_missing_file_returns_defaults ... ok
[INFO] [stdout] test config::tests::test_load_empty_file_returns_defaults ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_abi_value_bytes32 ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_abi_value_bytes4 ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_abi_value_bytes_without_size ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_abi_value_dynamic_type_short ... ok
[INFO] [stdout] test config::tests::test_load_ghola_enabled ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_abi_value_large_uint ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_abi_value_short_address ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_abi_value_dynamic_type_long ... ok
[INFO] [stdout] test config::tests::test_load_ghola_custom_buffer_size ... ok
[INFO] [stdout] test config::tests::test_load_ghola_absent_uses_defaults ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_abi_value_uint_parse_error ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_bool_false ... ok
[INFO] [stdout] test config::tests::test_load_ghola_partial ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_abi_value_int ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_abi_value_bool_non_one_zero ... ok
[INFO] [stdout] test config::tests::test_load_invalid_yaml_returns_error ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_params_from_abi_offset_exceeds_data ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_address ... ok
[INFO] [stdout] test config::tests::test_load_from_yaml_full ... ok
[INFO] [stdout] test config::tests::test_load_partial_yaml_uses_defaults ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_params_from_abi_partial_second_param ... ok
[INFO] [stdout] test config::tests::test_load_via_scope_config_env_var ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_bool_true ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_empty ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_params_from_abi_basic ... ok
[INFO] [stdout] test config::tests::test_load_unreadable_file_returns_error ... ok
[INFO] [stdout] test compliance::risk::tests::test_risk_engine_with_client_many_counterparties ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_params_from_abi_short_data ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_params_from_abi_unnamed_params ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_params_no_data ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_uint256 ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_uint256_zero ... ok
[INFO] [stdout] test contract::abi::tests::test_decoded_call_serialize_deserialize ... ok
[INFO] [stdout] test contract::abi::tests::test_find_abi_by_selector_match ... ok
[INFO] [stdout] test contract::abi::tests::test_find_abi_by_selector_no_match ... ok
[INFO] [stdout] test contract::abi::tests::test_find_abi_by_selector_skips_events ... ok
[INFO] [stdout] test contract::abi::tests::test_get_events ... ok
[INFO] [stdout] test contract::abi::tests::test_get_state_changing_functions ... ok
[INFO] [stdout] test contract::access::tests::test_analyze_auth_no_checks ... ok
[INFO] [stdout] test contract::access::tests::test_detect_ownership_pattern_custom_owner ... ok
[INFO] [stdout] test contract::access::tests::test_analyze_auth_tx_origin_with_msg_sender ... ok
[INFO] [stdout] test contract::access::tests::test_detect_ownership_pattern_none ... ok
[INFO] [stdout] test contract::access::tests::test_detect_modifiers_imported_only_owner ... ok
[INFO] [stdout] test contract::access::tests::test_detect_modifiers_admin ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_calldata_raw_selector_fallback ... ok
[INFO] [stdout] test contract::access::tests::test_detect_modifiers_role_based ... ok
[INFO] [stdout] test contract::access::tests::test_detect_roles_common_patterns ... ok
[INFO] [stdout] test contract::access::tests::test_find_tx_origin_usage_multiple ... ok
[INFO] [stdout] test contract::access::tests::test_modifier_check_type_debug ... ok
[INFO] [stdout] test contract::access::tests::test_detect_modifiers_custom ... ok
[INFO] [stdout] test contract::access::tests::test_privilege_risk_debug ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_calldata_empty_string ... ok
[INFO] [stdout] test contract::abi::tests::test_native_transfer_decoding ... ok
[INFO] [stdout] test contract::defi::tests::test_balancer_integration ... ok
[INFO] [stdout] test contract::defi::tests::test_band_protocol_oracle ... ok
[INFO] [stdout] test contract::defi::tests::test_classify_governance ... ok
[INFO] [stdout] test contract::defi::tests::test_classify_other ... ok
[INFO] [stdout] test contract::defi::tests::test_chainlink_missing_staleness ... ok
[INFO] [stdout] test contract::defi::tests::test_classify_bridge ... ok
[INFO] [stdout] test contract::defi::tests::test_classify_yield ... ok
[INFO] [stdout] test contract::defi::tests::test_curve_integration ... ok
[INFO] [stdout] test contract::defi::tests::test_detect_erc20_from_abi ... ok
[INFO] [stdout] test contract::defi::tests::test_custom_oracle ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_calldata_short_selector ... ok
[INFO] [stdout] test contract::defi::tests::test_detect_uniswap_integration ... ok
[INFO] [stdout] test contract::defi::tests::test_detect_chainlink_oracle ... ok
[INFO] [stdout] test contract::defi::tests::test_detect_flash_loan ... ok
[INFO] [stdout] test contract::abi::tests::test_decode_calldata_with_abi ... ok
[INFO] [stdout] test contract::defi::tests::test_flash_loan_no_balanceof_warning ... ok
[INFO] [stdout] test contract::defi::tests::test_erc1155_detection ... ok
[INFO] [stdout] test contract::defi::tests::test_erc4626_detection ... ok
[INFO] [stdout] test contract::defi::tests::test_erc721_detection ... ok
[INFO] [stdout] test contract::defi::tests::test_flash_loan_uniswap_swap ... ok
[INFO] [stdout] test contract::defi::tests::test_interest_rate_pattern ... ok
[INFO] [stdout] test contract::defi::tests::test_detect_lending ... ok
[INFO] [stdout] test contract::defi::tests::test_protocol_type_display ... ok
[INFO] [stdout] test contract::defi::tests::test_staking_reward_pattern ... ok
[INFO] [stdout] test contract::defi::tests::test_sushiswap_integration ... ok
[INFO] [stdout] test contract::defi::tests::test_flash_loan_dydx ... ok
[INFO] [stdout] test contract::defi::tests::test_timelock_staking ... ok
[INFO] [stdout] test contract::defi::tests::test_token_standard_display ... ok
[INFO] [stdout] test contract::defi::tests::test_uniswap_twap_oracle ... ok
[INFO] [stdout] test contract::defi::tests::test_vesting_pattern ... ok
[INFO] [stdout] test contract::external::tests::test_audit_report_struct ... ok
[INFO] [stdout] test contract::external::tests::test_build_explorer_url ... ok
[INFO] [stdout] test contract::external::tests::test_build_explorer_url_all_chains ... ok
[INFO] [stdout] test contract::defi::tests::test_dex_missing_slippage_risk_factor ... ok
[INFO] [stdout] test contract::defi::tests::test_health_factor_pattern ... ok
[INFO] [stdout] test contract::defi::tests::test_lending_pool_pattern ... ok
[INFO] [stdout] test contract::defi::tests::test_lending_without_liquidation_risk ... ok
[INFO] [stdout] test contract::defi::tests::test_missing_slippage_risk ... ok
[INFO] [stdout] test contract::external::tests::test_external_info_struct ... ok
[INFO] [stdout] test contract::external::tests::test_discover_audits_multiple_auditors ... ok
[INFO] [stdout] test contract::external::tests::test_discover_audits_no_source ... ok
[INFO] [stdout] test contract::external::tests::test_discover_audits_from_source ... ok
[INFO] [stdout] test contract::external::tests::test_find_github_from_dev_natspec ... ok
[INFO] [stdout] test contract::external::tests::test_find_github_from_contract_name_match ... ok
[INFO] [stdout] test contract::external::tests::test_discover_audits_audit_tag ... ok
[INFO] [stdout] test contract::access::tests::test_detect_tx_origin ... ok
[INFO] [stdout] test contract::external::tests::test_find_github_from_source_aave ... ok
[INFO] [stdout] test contract::external::tests::test_discover_audits_no_duplicate ... ok
[INFO] [stdout] test contract::external::tests::test_discover_audits_audited_by_tag ... ok
[INFO] [stdout] test contract::external::tests::test_gather_external_info_no_source ... ok
[INFO] [stdout] test contract::external::tests::test_find_github_from_source_ownable ... ok
[INFO] [stdout] test contract::external::tests::test_find_github_from_source_compound ... ok
[INFO] [stdout] test contract::external::tests::test_metadata_entry_struct ... ok
[INFO] [stdout] test contract::proxy::tests::test_detect_beacon_proxy ... ok
[INFO] [stdout] test contract::proxy::tests::test_detect_proxy_delegatecall_in_source ... ok
[INFO] [stdout] test contract::proxy::tests::test_detect_proxy_eip1967_admin_and_beacon_slots ... ok
[INFO] [stdout] test contract::external::tests::test_find_github_none ... ok
[INFO] [stdout] test contract::proxy::tests::test_detect_proxy_eip1967_transparent ... ok
[INFO] [stdout] test contract::proxy::tests::test_detect_proxy_eip1967_uups_with_source ... ok
[INFO] [stdout] test contract::proxy::tests::test_detect_proxy_etherscan_metadata ... ok
[INFO] [stdout] test contract::proxy::tests::test_detect_proxy_from_source_diamond ... ok
[INFO] [stdout] test contract::external::tests::test_find_github_with_ipfs_swarm ... ok
[INFO] [stdout] test contract::proxy::tests::test_detect_proxy_from_source_idiamond ... ok
[INFO] [stdout] test contract::proxy::tests::test_detect_proxy_from_source_set_implementation ... ok
[INFO] [stdout] test contract::proxy::tests::test_detect_proxy_from_source_uups ... ok
[INFO] [stdout] test contract::proxy::tests::test_detect_transparent_upgradeable ... ok
[INFO] [stdout] test contract::proxy::tests::test_detect_proxy_from_source_facetcut ... ok
[INFO] [stdout] test contract::proxy::tests::test_detect_upgrade_to_pattern ... ok
[INFO] [stdout] test contract::proxy::tests::test_extract_address_from_slot ... ok
[INFO] [stdout] test contract::proxy::tests::test_detect_proxy_minimal_eip1167 ... ok
[INFO] [stdout] test contract::proxy::tests::test_extract_address_from_slot_uppercase_hex ... ok
[INFO] [stdout] test contract::proxy::tests::test_extract_address_from_zero_slot ... ok
[INFO] [stdout] test contract::proxy::tests::test_extract_address_from_slot_exactly_40_chars ... ok
[INFO] [stdout] test contract::proxy::tests::test_extract_address_no_prefix ... ok
[INFO] [stdout] test contract::proxy::tests::test_extract_address_short_hex ... ok
[INFO] [stdout] test contract::proxy::tests::test_minimal_proxy_detection ... ok
[INFO] [stdout] test contract::proxy::tests::test_non_proxy_source ... ok
[INFO] [stdout] test contract::external::tests::test_find_github_from_url ... ok
[INFO] [stdout] test contract::proxy::tests::test_proxy_info_default ... ok
[INFO] [stdout] test contract::proxy::tests::test_proxy_info_serialization ... ok
[INFO] [stdout] test contract::source::tests::test_abi_entry_event_not_state_changing ... ok
[INFO] [stdout] test contract::source::tests::test_abi_entry_is_state_changing ... ok
[INFO] [stdout] test contract::source::tests::test_abi_entry_constructor_not_state_changing ... ok
[INFO] [stdout] test contract::source::tests::test_abi_entry_selector ... ok
[INFO] [stdout] test contract::source::tests::test_abi_entry_pure_not_state_changing ... ok
[INFO] [stdout] test contract::source::tests::test_abi_entry_selector_consistency ... ok
[INFO] [stdout] test contract::source::tests::test_abi_entry_signature ... ok
[INFO] [stdout] test contract::source::tests::test_abi_entry_signature_no_params ... ok
[INFO] [stdout] test contract::source::tests::test_abi_entry_payable_is_state_changing ... ok
[INFO] [stdout] test contract::source::tests::test_abi_entry_fallback_not_state_changing ... ok
[INFO] [stdout] test contract::external::tests::test_find_github_from_source_uniswapv3 ... ok
[INFO] [stdout] test contract::source::tests::test_contract_source_serialization ... ok
[INFO] [stdout] test contract::source::tests::test_abi_param_canonical_type_tuple ... ok
[INFO] [stdout] test contract::source::tests::test_abi_param_canonical_type_nested_tuple ... ok
[INFO] [stdout] test contract::source::tests::test_chain_to_etherscan_id_all ... ok
[INFO] [stdout] test contract::source::tests::test_chain_to_etherscan_id ... ok
[INFO] [stdout] test contract::source::tests::test_extract_multi_file_source ... ok
[INFO] [stdout] test contract::source::tests::test_extract_invalid_json_fallback ... ok
[INFO] [stdout] test contract::source::tests::test_extract_single_file_source ... ok
[INFO] [stdout] test contract::source::tests::test_extract_standard_json_empty_sources_object ... ok
[INFO] [stdout] test contract::external::tests::test_gather_external_info_without_optimization ... ok
[INFO] [stdout] test contract::source::tests::test_extract_standard_json_source ... ok
[INFO] [stdout] test contract::access::tests::test_auth_analysis_dangerous ... ok
[INFO] [stdout] test contract::source::tests::test_extract_wrapped_invalid_inner_json ... ok
[INFO] [stdout] test contract::source::tests::test_extract_standard_json_no_sources_key ... ok
[INFO] [stdout] test contract::source::tests::test_extract_standard_json_sources_not_object ... ok
[INFO] [stdout] test contract::source::tests::test_extract_standard_json_source_missing_content ... ok
[INFO] [stdout] test contract::source::tests::test_sha2_256_deterministic ... ok
[INFO] [stdout] test contract::source::tests::test_source_file_struct ... ok
[INFO] [stdout] test contract::tests::test_compute_security_score_access_control_renounced_and_role_based ... ok
[INFO] [stdout] test contract::tests::test_compute_security_score_clamped_to_100 ... ok
[INFO] [stdout] test contract::tests::test_compute_security_score_defi_flash_loan_only ... ok
[INFO] [stdout] test contract::tests::test_compute_security_score_defi_oracle_and_flash_loan ... ok
[INFO] [stdout] test contract::tests::test_compute_security_score_defi_oracle_only ... ok
[INFO] [stdout] test contract::tests::test_compute_security_score_external_audit_and_github ... ok
[INFO] [stdout] test contract::tests::test_compute_security_score_external_audit_only ... ok
[INFO] [stdout] test contract::tests::test_compute_security_score_external_github_only ... ok
[INFO] [stdout] test contract::tests::test_compute_security_score_proxy_info_not_proxy ... ok
[INFO] [stdout] test contract::tests::test_compute_security_score_proxy_with_admin ... ok
[INFO] [stdout] test contract::tests::test_compute_security_score_proxy_without_admin ... ok
[INFO] [stdout] test contract::tests::test_compute_security_score_severity_informational ... ok
[INFO] [stdout] test contract::tests::test_compute_security_score_severity_high ... ok
[INFO] [stdout] test contract::tests::test_compute_security_score_severity_low ... ok
[INFO] [stdout] test contract::tests::test_compute_security_score_severity_medium ... ok
[INFO] [stdout] test contract::tests::test_compute_security_score_tx_origin ... ok
[INFO] [stdout] test contract::tests::test_compute_security_score_unverified ... ok
[INFO] [stdout] test contract::tests::test_compute_security_score_verified ... ok
[INFO] [stdout] test contract::tests::test_compute_security_score_with_critical_vuln ... ok
[INFO] [stdout] test contract::tests::test_contract_analysis_serialization_roundtrip ... ok
[INFO] [stdout] test contract::tests::test_contract_analysis_struct_construction ... ok
[INFO] [stdout] test contract::tests::test_generate_security_summary_critical_and_high_vulns ... ok
[INFO] [stdout] test contract::tests::test_generate_security_summary_proxy_no_implementation ... ok
[INFO] [stdout] test contract::tests::test_generate_security_summary_access_control_privileged_and_tx_origin ... ok
[INFO] [stdout] test contract::tests::test_generate_security_summary_low_severity_vulns ... ok
[INFO] [stdout] test contract::tests::test_generate_security_summary_proxy_implementation ... ok
[INFO] [stdout] test contract::tests::test_generate_security_summary_renounced_only ... ok
[INFO] [stdout] test contract::tests::test_generate_security_summary_score_ratings ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_bytecode_only_scan ... ok
[INFO] [stdout] test contract::tests::test_generate_security_summary_verified_no_vulns ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_bytecode_short_with_ff ... ok
[INFO] [stdout] test contract::tests::test_score_clamped_to_valid_range ... ok
[INFO] [stdout] test contract::tests::test_security_summary_unverified ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_bytecode_with_delegatecall_opcode ... ok
[INFO] [stdout] test contract::external::tests::test_find_github_from_uniswap ... ok
[INFO] [stdout] test contract::external::tests::test_gather_external_info_with_source ... ok
[INFO] [stdout] test contract::access::tests::test_detect_renounced_ownership ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_pre04_compiler_overflow ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_08_no_unchecked_no_overflow ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_08_with_unchecked ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_pre06_compiler_overflow ... ok
[INFO] [stdout] test contract::access::tests::test_detect_roles ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_reentrancy_call_value_state_update ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_pre08_no_safemath ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_pre08_with_safemath_no_finding ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_delegatecall_constant ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_severity_display_all ... ok
[INFO] [stdout] test contract::access::tests::test_detect_privileged_functions_with_abi ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_delegatecall_variable_addr ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_clean_contract ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_reentrancy_no_guard_with_balances ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_front_running_bid_no_commit ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_erc20_approve_frontrunning ... ok
[INFO] [stdout] test contract::access::tests::test_detect_access_control ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_vuln_category_display_all ... ok
[INFO] [stdout] test display::charts::tests::test_chart_config_default ... ok
[INFO] [stdout] test display::charts::tests::test_format_large_number ... ok
[INFO] [stdout] test display::charts::tests::test_holder_distribution_with_10_holders ... ok
[INFO] [stdout] test display::charts::tests::test_price_chart_multiday_range ... ok
[INFO] [stdout] test display::charts::tests::test_render_analytics_dashboard ... ok
[INFO] [stdout] test display::charts::tests::test_render_holder_distribution_empty ... ok
[INFO] [stdout] test display::charts::tests::test_render_holder_distribution_with_data ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_pre05_compiler_overflow ... ok
[INFO] [stdout] test display::charts::tests::test_render_price_chart_empty ... ok
[INFO] [stdout] test contract::access::tests::test_auth_analysis_safe ... ok
[INFO] [stdout] test display::charts::tests::test_render_price_chart_with_data ... ok
[INFO] [stdout] test display::charts::tests::test_render_volume_chart_empty ... ok
[INFO] [stdout] test display::charts::tests::test_truncate_address ... ok
[INFO] [stdout] test display::charts::tests::test_render_volume_chart_with_data ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_dos_unbounded_loop ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_suicide_alias_detected ... ok
[INFO] [stdout] test contract::access::tests::test_detect_privileged_functions_abi_only ... ok
[INFO] [stdout] test display::compliance::tests::test_empty_recommendations ... ok
[INFO] [stdout] test display::compliance::tests::test_format_risk_json_roundtrip ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_selfdestruct_with_owner_guard_medium ... ok
[INFO] [stdout] test display::compliance::tests::test_format_risk_markdown_all_categories ... ok
[INFO] [stdout] test display::compliance::tests::test_format_risk_markdown_no_factors ... ok
[INFO] [stdout] test display::compliance::tests::test_format_critical_risk ... ok
[INFO] [stdout] test display::compliance::tests::test_format_risk_markdown_empty_evidence ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_unchecked_low_level_call ... ok
[INFO] [stdout] test display::compliance::tests::test_format_risk_report_json ... ok
[INFO] [stdout] test display::compliance::tests::test_format_risk_markdown_with_evidence ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_selfdestruct_detection ... ok
[INFO] [stdout] test display::compliance::tests::test_format_risk_report_markdown ... ok
[INFO] [stdout] test display::compliance::tests::test_format_high_risk ... ok
[INFO] [stdout] test display::compliance::tests::test_format_low_risk ... ok
[INFO] [stdout] test display::compliance::tests::test_format_risk_report_yaml ... ok
[INFO] [stdout] test display::compliance::tests::test_format_risk_yaml_roundtrip ... ok
[INFO] [stdout] test display::compliance::tests::test_markdown_contains_disclaimer ... ok
[INFO] [stdout] test display::compliance::tests::test_markdown_no_detailed ... ok
[INFO] [stdout] test display::compliance::tests::test_output_format_default ... ok
[INFO] [stdout] test display::format::tests::test_format_large_number ... ok
[INFO] [stdout] test display::format::tests::test_format_token_balance ... ok
[INFO] [stdout] test display::format::tests::test_format_usd ... ok
[INFO] [stdout] test display::report::tests::test_buysell_chart ... ok
[INFO] [stdout] test display::report::tests::test_buysell_chart_empty ... ok
[INFO] [stdout] test display::report::tests::test_capitalize ... ok
[INFO] [stdout] test display::report::tests::test_capitalize_edge_cases ... ok
[INFO] [stdout] test display::report::tests::test_concentration_analysis ... ok
[INFO] [stdout] test display::report::tests::test_concentration_analysis_ranges ... ok
[INFO] [stdout] test display::report::tests::test_concentration_chart_no_holders ... ok
[INFO] [stdout] test display::report::tests::test_concentration_chart_three_segments ... ok
[INFO] [stdout] test display::report::tests::test_concentration_chart_top50_fallback_calculation ... ok
[INFO] [stdout] test display::report::tests::test_data_sources_different_chains ... ok
[INFO] [stdout] test display::report::tests::test_data_sources_section ... ok
[INFO] [stdout] test display::report::tests::test_format_number_edge_cases ... ok
[INFO] [stdout] test display::report::tests::test_format_number_large_values ... ok
[INFO] [stdout] test display::report::tests::test_format_usd ... ok
[INFO] [stdout] test display::report::tests::test_format_usd_edge_cases ... ok
[INFO] [stdout] test display::report::tests::test_full_addresses_not_truncated ... ok
[INFO] [stdout] test display::report::tests::test_generate_report ... ok
[INFO] [stdout] test display::compliance::tests::test_all_output_formats_no_panic ... ok
[INFO] [stdout] test display::report::tests::test_generate_report_no_dex_pairs ... ok
[INFO] [stdout] test display::report::tests::test_generate_report_no_market_cap ... ok
[INFO] [stdout] test display::report::tests::test_generate_report_no_holders ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_tx_origin_detection ... ok
[INFO] [stdout] test display::report::tests::test_liquidity_analysis_section ... ok
[INFO] [stdout] test display::report::tests::test_liquidity_chart_multiple_pairs ... ok
[INFO] [stdout] test display::report::tests::test_generate_report_no_social_no_website ... ok
[INFO] [stdout] test display::report::tests::test_holder_section_with_data ... ok
[INFO] [stdout] test display::report::tests::test_liquidity_chart_single_pair ... ok
[INFO] [stdout] test display::compliance::tests::test_format_risk_report_table ... ok
[INFO] [stdout] test display::report::tests::test_new_report_sections_included ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_tx_origin_dangerous_auth ... ok
[INFO] [stdout] test display::report::tests::test_price_change_chart ... ok
[INFO] [stdout] test display::report::tests::test_price_analysis_with_history ... ok
[INFO] [stdout] test display::report::tests::test_price_chart_all_zeros_no_history ... ok
[INFO] [stdout] test display::report::tests::test_price_chart_all_zeros_with_history ... ok
[INFO] [stdout] test display::report::tests::test_price_chart_with_changes_and_history ... ok
[INFO] [stdout] test display::report::tests::test_price_chart_zero_changes_with_history ... ok
[INFO] [stdout] test display::report::tests::test_price_history_chart_with_data ... ok
[INFO] [stdout] test display::report::tests::test_report_footer ... ok
[INFO] [stdout] test display::report::tests::test_risk_assessment_labels ... ok
[INFO] [stdout] test display::report::tests::test_risk_factors_liquidity_10k_to_50k ... ok
[INFO] [stdout] test display::report::tests::test_price_history_chart_too_few_points ... ok
[INFO] [stdout] test display::report::tests::test_risk_factors_high_risk_token ... ok
[INFO] [stdout] test display::report::tests::test_risk_factors_low_risk_token ... ok
[INFO] [stdout] test display::report::tests::test_risk_factors_moderate_liquidity ... ok
[INFO] [stdout] test display::report::tests::test_risk_factors_no_buys_no_sells ... ok
[INFO] [stdout] test display::report::tests::test_risk_factors_social_one_social ... ok
[INFO] [stdout] test display::compliance::tests::test_format_risk_report_no_factors ... ok
[INFO] [stdout] test display::report::tests::test_risk_factors_unknown_age ... ok
[INFO] [stdout] test display::report::tests::test_risk_factors_various_concentration_thresholds ... ok
[INFO] [stdout] test display::report::tests::test_risk_factors_various_liquidity_thresholds ... ok
[INFO] [stdout] test display::report::tests::test_risk_factors_various_age_thresholds ... ok
[INFO] [stdout] test display::report::tests::test_risk_indicators_empty ... ok
[INFO] [stdout] test display::report::tests::test_risk_indicators_healthy_token ... ok
[INFO] [stdout] test display::report::tests::test_risk_indicators_extreme_concentration ... ok
[INFO] [stdout] test display::report::tests::test_risk_indicators_high_volatility ... ok
[INFO] [stdout] test display::report::tests::test_risk_indicators_moderate_liquidity ... ok
[INFO] [stdout] test display::report::tests::test_risk_factors_very_low_liquidity ... ok
[INFO] [stdout] test display::report::tests::test_risk_factors_various_honeypot_ratios ... ok
[INFO] [stdout] test display::report::tests::test_risk_indicators_very_low_liquidity ... ok
[INFO] [stdout] test display::report::tests::test_risk_score_calculation ... ok
[INFO] [stdout] test display::report::tests::test_risk_indicators_no_data ... ok
[INFO] [stdout] test display::report::tests::test_risk_score_section ... ok
[INFO] [stdout] test display::report::tests::test_security_analysis_honeypot_detection ... ok
[INFO] [stdout] test display::report::tests::test_risk_factors_zero_sells_positive_buys ... ok
[INFO] [stdout] test display::report::tests::test_security_analysis_medium_buy_sell_ratio ... ok
[INFO] [stdout] test display::report::tests::test_save_report_invalid_path ... ok
[INFO] [stdout] test display::report::tests::test_risk_breakdown_chart ... ok
[INFO] [stdout] test display::report::tests::test_save_report ... ok
[INFO] [stdout] test display::report::tests::test_security_analysis_no_holders ... ok
[INFO] [stdout] test display::report::tests::test_security_analysis_section ... ok
[INFO] [stdout] test display::report::tests::test_security_analysis_sells_zero_buys_positive ... ok
[INFO] [stdout] test display::report::tests::test_security_analysis_token_age_days_format ... ok
[INFO] [stdout] test display::compliance::tests::test_format_risk_table_no_recommendations ... ok
[INFO] [stdout] test display::report::tests::test_security_analysis_whale_risk_extreme ... ok
[INFO] [stdout] test display::report::tests::test_security_analysis_whale_risk_low ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_tx_origin_msg_sender_comparison ... ok
[INFO] [stdout] test display::report::tests::test_security_analysis_whale_risk_medium ... ok
[INFO] [stdout] test display::report::tests::test_security_analysis_token_age_ranges ... ok
[INFO] [stdout] test display::report::tests::test_security_analysis_token_age_very_new ... ok
[INFO] [stdout] test display::report::tests::test_security_analysis_token_age_unknown ... ok
[INFO] [stdout] test display::report::tests::test_security_analysis_zero_transactions ... ok
[INFO] [stdout] test display::report::tests::test_social_platform_icons ... ok
[INFO] [stdout] test display::report::tests::test_security_buysell_zero_buys_zero_sells_in_period ... ok
[INFO] [stdout] test display::report::tests::test_risk_indicators_low_liquidity ... ok
[INFO] [stdout] test display::report::tests::test_security_analysis_only_buys ... ok
[INFO] [stdout] test display::report::tests::test_security_analysis_token_age_months ... ok
[INFO] [stdout] test display::report::tests::test_token_info_section ... ok
[INFO] [stdout] test display::report::tests::test_token_risk_summary_low_liquidity_concern ... ok
[INFO] [stdout] test display::report::tests::test_token_risk_summary_reasonable_distribution ... ok
[INFO] [stdout] test display::report::tests::test_txn_activity_chart ... ok
[INFO] [stdout] test display::report::tests::test_volume_chart_empty ... ok
[INFO] [stdout] test display::report::tests::test_volume_chart_with_data ... ok
[INFO] [stdout] test display::terminal::tests::test_blank_row ... ok
[INFO] [stdout] test display::terminal::tests::test_blank_row_tty ... ok
[INFO] [stdout] test display::report::tests::test_volume_analysis_high_vol_to_liq ... ok
[INFO] [stdout] test display::report::tests::test_security_analysis_zero_buys_sells ... ok
[INFO] [stdout] test display::report::tests::test_txn_activity_chart_empty ... ok
[INFO] [stdout] test display::report::tests::test_token_risk_summary ... ok
[INFO] [stdout] test display::report::tests::test_volume_analysis_section ... ok
[INFO] [stdout] test display::report::tests::test_token_risk_summary_honeypot_concern ... ok
[INFO] [stdout] test display::report::tests::test_token_risk_summary_new_token_concern ... ok
[INFO] [stdout] test display::compliance::tests::test_format_risk_report_detailed ... ok
[INFO] [stdout] test contract::access::tests::test_detect_ownable ... ok
[INFO] [stdout] test display::compliance::tests::test_format_risk_table_long_factor_name ... ok
[INFO] [stdout] test display::terminal::tests::test_check_fail ... ok
[INFO] [stdout] test display::terminal::tests::test_check_fail_wraps_long_text ... ok
[INFO] [stdout] test display::terminal::tests::test_check_pass_wraps_long_text ... ok
[INFO] [stdout] test display::terminal::tests::test_check_fail_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_detail_row ... ok
[INFO] [stdout] test display::terminal::tests::test_check_pass ... ok
[INFO] [stdout] test display::terminal::tests::test_detail_row_wraps_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_format_price_peg_far ... ok
[INFO] [stdout] test display::terminal::tests::test_format_price_peg_moderate_deviation ... ok
[INFO] [stdout] test display::terminal::tests::test_format_price_peg_near ... ok
[INFO] [stdout] test display::terminal::tests::test_format_price_peg_tty_far ... ok
[INFO] [stdout] test display::terminal::tests::test_format_price_peg_tty_moderate ... ok
[INFO] [stdout] test display::terminal::tests::test_format_price_peg_tty_near ... ok
[INFO] [stdout] test display::terminal::tests::test_check_pass_wraps_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_content_width_for_reasonable_prefix ... ok
[INFO] [stdout] test display::terminal::tests::test_detail_row_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_check_fail_wraps_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_check_pass_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_bullet_row_wraps_long_text ... ok
[INFO] [stdout] test display::terminal::tests::test_kv_row_delta_negative_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_info_row ... ok
[INFO] [stdout] test display::terminal::tests::test_info_row_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_kv_row_delta_positive ... ok
[INFO] [stdout] test display::terminal::tests::test_kv_row_delta_positive_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_kv_row_delta_zero_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_kv_row_delta_zero_value ... ok
[INFO] [stdout] test display::terminal::tests::test_kv_row_delta_negative ... ok
[INFO] [stdout] test display::terminal::tests::test_info_row_wraps_long_text ... ok
[INFO] [stdout] test display::terminal::tests::test_kv_row_contains_key_value ... ok
[INFO] [stdout] test display::terminal::tests::test_link_row ... ok
[INFO] [stdout] test display::terminal::tests::test_bullet_row ... ok
[INFO] [stdout] test display::terminal::tests::test_link_row_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_kv_row_short_value_no_wrap ... ok
[INFO] [stdout] test display::terminal::tests::test_kv_row_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_kv_row_wraps_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_detail_row_wraps_long_text ... ok
[INFO] [stdout] test display::terminal::tests::test_numbered_row_double_digits ... ok
[INFO] [stdout] test display::terminal::tests::test_orderbook_level_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_orderbook_level_various_prices ... ok
[INFO] [stdout] test display::terminal::tests::test_orderbook_level ... ok
[INFO] [stdout] test display::terminal::tests::test_numbered_row_basic ... ok
[INFO] [stdout] test display::terminal::tests::test_score_bar_low ... ok
[INFO] [stdout] test display::terminal::tests::test_info_row_wraps_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_score_bar_max ... ok
[INFO] [stdout] test display::terminal::tests::test_kv_row_wraps_long_value ... ok
[INFO] [stdout] test display::terminal::tests::test_score_bar_tty_high ... ok
[INFO] [stdout] test display::terminal::tests::test_score_bar_high ... ok
[INFO] [stdout] test display::terminal::tests::test_score_bar_tty_low ... ok
[INFO] [stdout] test display::terminal::tests::test_section_footer ... ok
[INFO] [stdout] test display::terminal::tests::test_section_footer_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_section_header_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_separator ... ok
[INFO] [stdout] test display::terminal::tests::test_score_bar_zero ... ok
[INFO] [stdout] test display::terminal::tests::test_score_bar_tty_medium ... ok
[INFO] [stdout] test display::terminal::tests::test_bullet_row_wraps_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_numbered_row_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_separator_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_severity_label_critical ... ok
[INFO] [stdout] test display::terminal::tests::test_section_header_contains_title ... ok
[INFO] [stdout] test display::terminal::tests::test_severity_label_high ... ok
[INFO] [stdout] test display::terminal::tests::test_severity_label_informational ... ok
[INFO] [stdout] test display::terminal::tests::test_severity_label_low ... ok
[INFO] [stdout] test display::terminal::tests::test_severity_label_tty_critical ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_timestamp_dependence_require ... ok
[INFO] [stdout] test display::terminal::tests::test_severity_label_tty_low ... ok
[INFO] [stdout] test display::terminal::tests::test_status_line_healthy ... ok
[INFO] [stdout] test display::terminal::tests::test_status_line_unhealthy ... ok
[INFO] [stdout] test display::terminal::tests::test_status_line_healthy_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_status_line_unhealthy_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_severity_label_medium ... ok
[INFO] [stdout] test display::terminal::tests::test_numbered_row_wraps_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_table_header_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_table_row_contains_values ... ok
[INFO] [stdout] test display::terminal::tests::test_subsection_header_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_subsection_header_contains_title ... ok
[INFO] [stdout] test display::terminal::tests::test_table_row_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_table_header_contains_labels ... ok
[INFO] [stdout] test display::terminal::tests::test_table_row_missing_values ... ok
[INFO] [stdout] test display::terminal::tests::test_severity_label_tty_unknown ... ok
[INFO] [stdout] test display::terminal::tests::test_wrap_lines_empty_string ... ok
[INFO] [stdout] test display::terminal::tests::test_terminal_width_returns_positive ... ok
[INFO] [stdout] test display::terminal::tests::test_wrap_lines_exact_fit ... ok
[INFO] [stdout] test display::terminal::tests::test_wrap_lines_long_word_exceeds_width ... ok
[INFO] [stdout] test display::terminal::tests::test_numbered_row_wraps ... ok
[INFO] [stdout] test display::terminal::tests::test_wrap_lines_multiple_wraps ... ok
[INFO] [stdout] test display::terminal::tests::test_wrap_lines_long_word_after_short ... ok
[INFO] [stdout] test display::terminal::tests::test_warning_row_wraps_long_text ... ok
[INFO] [stdout] test display::terminal::tests::test_wrap_lines_preserves_all_words ... ok
[INFO] [stdout] test display::terminal::tests::test_warning_row_wraps_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_wrap_lines_short_text ... ok
[INFO] [stdout] test display::terminal::tests::test_warning_row ... ok
[INFO] [stdout] test display::terminal::tests::test_bullet_row_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_warning_row_tty ... ok
[INFO] [stdout] test display::terminal::tests::test_wrap_lines_single_word ... ok
[INFO] [stdout] test display::terminal::tests::test_wrap_lines_wraps_at_word_boundary ... ok
[INFO] [stdout] test display::terminal::tests::test_wrap_lines_zero_width ... ok
[INFO] [stdout] test domain::address_book::tests::test_address_book_add_address ... ok
[INFO] [stdout] test domain::address_book::tests::test_address_book_add_duplicate_fails ... ok
[INFO] [stdout] test domain::address_book::tests::test_address_book_default ... ok
[INFO] [stdout] test domain::address_book::tests::test_address_book_find_address ... ok
[INFO] [stdout] test domain::address_book::tests::test_address_book_find_address_case_insensitive ... ok
[INFO] [stdout] test domain::address_book::tests::test_address_book_load_nonexistent_returns_default ... ok
[INFO] [stdout] test domain::address_book::tests::test_address_book_remove_address ... ok
[INFO] [stdout] test domain::address_book::tests::test_address_book_remove_nonexistent ... ok
[INFO] [stdout] test domain::address_book::tests::test_address_book_summary_serialization ... ok
[INFO] [stdout] test domain::address_book::tests::test_address_book_save_and_load ... ok
[INFO] [stdout] test domain::address_book::tests::test_watched_address_serialization ... ok
[INFO] [stdout] test domain::address_book::tests::test_chain_balance_serialization ... ok
[INFO] [stdout] test error::tests::test_bca_error_display_chain ... ok
[INFO] [stdout] test error::tests::test_bca_error_display_export ... ok
[INFO] [stdout] test error::tests::test_bca_error_display_invalid_address ... ok
[INFO] [stdout] test error::tests::test_bca_error_display_invalid_hash ... ok
[INFO] [stdout] test error::tests::test_bca_error_from_config_error ... ok
[INFO] [stdout] test error::tests::test_bca_error_from_io_error ... ok
[INFO] [stdout] test error::tests::test_config_error_not_found ... ok
[INFO] [stdout] test error::tests::test_config_error_validation ... ok
[INFO] [stdout] test error::tests::test_config_error_source_chain ... ok
[INFO] [stdout] test error::tests::test_error_debug_impl ... ok
[INFO] [stdout] test error::tests::test_result_type_alias_err ... ok
[INFO] [stdout] test display::terminal::tests::test_non_tty_returns_unicode_box_characters ... ok
[INFO] [stdout] test error::tests::test_result_type_alias_ok ... ok
[INFO] [stdout] test http::ghola::tests::test_bridge_request_full_serialization ... ok
[INFO] [stdout] test http::ghola::tests::test_bridge_request_serialization ... ok
[INFO] [stdout] test http::ghola::tests::test_bridge_response_deserialization ... ok
[INFO] [stdout] test http::ghola::tests::test_bridge_response_missing_error_field ... ok
[INFO] [stdout] test http::ghola::tests::test_bridge_response_roundtrip ... ok
[INFO] [stdout] test http::ghola::tests::test_ghola_client_creation ... ok
[INFO] [stdout] test http::ghola::tests::test_default_buffer_size ... ok
[INFO] [stdout] test http::ghola::tests::test_ghola_client_creation_stealth_off ... ok
[INFO] [stdout] test http::ghola::tests::test_bridge_response_with_error ... ok
[INFO] [stdout] test http::ghola::tests::test_is_bridge_running_returns_bool ... ok
[INFO] [stdout] test http::ghola::tests::test_ghola_in_path_returns_bool ... ok
[INFO] [stdout] test http::ghola::tests::test_custom_buffer_size_stored ... ok
[INFO] [stdout] test http::ghola::tests::test_send_connection_refused ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_unchecked_send ... ok
[INFO] [stdout] test http::ghola::tests::test_send_includes_buffer_size ... ok
[INFO] [stdout] test http::ghola::tests::test_send_bridge_error_response ... ok
[INFO] [stdout] test http::ghola::tests::test_sidecar_constants ... ok
[INFO] [stdout] test http::ghola::tests::test_sidecar_pid_default_zero ... ok
[INFO] [stdout] test http::ghola::tests::test_send_success_via_mock ... ok
[INFO] [stdout] test http::ghola::tests::test_send_non_success_bridge_status ... ok
[INFO] [stdout] test http::native::tests::test_empty_method_returns_error ... ok
[INFO] [stdout] test http::ghola::tests::test_send_invalid_json_response ... ok
[INFO] [stdout] test http::ghola::tests::test_send_to_mock_sidecar ... ok
[INFO] [stdout] test http::ghola::tests::test_send_with_custom_headers ... ok
[INFO] [stdout] test http::native::tests::test_native_client_creation ... ok
[INFO] [stdout] test http::ghola::tests::test_send_with_stealth_off ... ok
[INFO] [stdout] test http::tests::test_post_json_empty_body ... ok
[INFO] [stdout] test http::native::tests::test_send_get_request ... ok
[INFO] [stdout] test http::tests::test_request_clone ... ok
[INFO] [stdout] test http::tests::test_request_get ... ok
[INFO] [stdout] test http::tests::test_request_header_overwrite ... ok
[INFO] [stdout] test http::native::tests::test_send_post_json_request ... ok
[INFO] [stdout] test http::tests::test_request_debug_formatting ... ok
[INFO] [stdout] test http::native::tests::test_send_non_success_status ... ok
[INFO] [stdout] test http::tests::test_request_post_json ... ok
[INFO] [stdout] test http::tests::test_request_with_header ... ok
[INFO] [stdout] test http::native::tests::test_response_headers_collected ... ok
[INFO] [stdout] test http::tests::test_response_boundary_success ... ok
[INFO] [stdout] test http::tests::test_response_clone ... ok
[INFO] [stdout] test http::tests::test_response_debug_formatting ... ok
[INFO] [stdout] test http::tests::test_response_is_success ... ok
[INFO] [stdout] test http::tests::test_response_json ... ok
[INFO] [stdout] test http::tests::test_response_json_error ... ok
[INFO] [stdout] test http::tests::test_response_json_typed ... ok
[INFO] [stdout] test market::analytics::tests::test_order_book_from_analytics_normal ... ok
[INFO] [stdout] test market::analytics::tests::test_order_book_from_analytics_zero_liquidity ... ok
[INFO] [stdout] test http::native::tests::test_send_with_custom_headers ... ok
[INFO] [stdout] test market::analytics::tests::test_order_book_from_analytics_zero_price ... ok
[INFO] [stdout] test market::configurable_client::tests::test_descriptor_accessor ... ok
[INFO] [stdout] test display::compliance::tests::test_format_all_risk_levels ... ok
[INFO] [stdout] test http::native::tests::test_send_server_error ... ok
[INFO] [stdout] test market::configurable_client::tests::test_extract_string_from_number ... ok
[INFO] [stdout] test market::configurable_client::tests::test_extract_string_returns_none_for_array ... ok
[INFO] [stdout] test market::configurable_client::tests::test_extract_string_from_string ... ok
[INFO] [stdout] test market::configurable_client::tests::test_extract_string_returns_none_for_object ... ok
[INFO] [stdout] test market::configurable_client::tests::test_extract_f64_nested ... ok
[INFO] [stdout] test market::configurable_client::tests::test_extract_string_from_nested_path ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_ohlc_no_capability ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_ohlc_array_of_arrays ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_ohlc_empty_array ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_order_book_http_error ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_ohlc_via_post_method ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_ohlc_get_http_error ... ok
[INFO] [stdout] test display::compliance::tests::test_format_risk_table_many_recommendations ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_order_book_missing_asks_key ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_ohlc_skips_malformed_inner_items ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_ohlc_non_array_response ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_ohlc_with_response_root ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_ohlc_interval_map_passthrough ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_ohlc_post_http_error ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_order_book_binance_invalid_symbol_hint ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_ohlc_with_items_key ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_ohlc_interval_map ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_ohlc_object_format ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_order_book_no_capability ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_order_book_missing_bids_key ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_trades_no_capability ... ok
[INFO] [stdout] test market::configurable_client::tests::test_format_display_pair_base_zero_len_returns_raw ... ok
[INFO] [stdout] test market::configurable_client::tests::test_format_display_pair_dash ... ok
[INFO] [stdout] test market::configurable_client::tests::test_format_display_pair_eur_concatenated ... ok
[INFO] [stdout] test market::configurable_client::tests::test_format_display_pair_gbp_concatenated ... ok
[INFO] [stdout] test market::configurable_client::tests::test_format_display_pair_quote_only_no_split ... ok
[INFO] [stdout] test market::configurable_client::tests::test_format_display_pair_underscore ... ok
[INFO] [stdout] test market::configurable_client::tests::test_format_display_pair_unknown_quote ... ok
[INFO] [stdout] test market::configurable_client::tests::test_format_display_pair_no_quote_match_returns_raw ... ok
[INFO] [stdout] test market::configurable_client::tests::test_format_display_pair_concatenated ... ok
[INFO] [stdout] test market::configurable_client::tests::test_format_display_pair_single_char ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_trades_non_array_response ... ok
[INFO] [stdout] test market::configurable_client::tests::test_format_display_pair_usdc_concatenated ... ok
[INFO] [stdout] test market::configurable_client::tests::test_interpolate_json_full_with_interval ... ok
[INFO] [stdout] test market::configurable_client::tests::test_format_pair_accessor ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_ticker_with_filter ... ok
[INFO] [stdout] test market::configurable_client::tests::test_interpolate_json ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_order_book_via_post ... ok
[INFO] [stdout] test market::configurable_client::tests::test_interpolate_json_array_with_placeholders ... ok
[INFO] [stdout] test market::configurable_client::tests::test_interpolate_json_passthrough ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_order_book_via_http ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_with_custom_headers ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_ticker_via_http ... ok
[INFO] [stdout] test market::configurable_client::tests::test_interpolate_value_full_with_interval ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_recent_trades_via_http ... ok
[INFO] [stdout] test market::configurable_client::tests::test_navigate_field_deeper_path ... ok
[INFO] [stdout] test market::configurable_client::tests::test_navigate_root_single_key ... ok
[INFO] [stdout] test market::configurable_client::tests::test_fetch_ticker_filter_no_match ... ok
[INFO] [stdout] test market::configurable_client::tests::test_interpolate_json_preserves_primitive_types ... ok
[INFO] [stdout] test market::configurable_client::tests::test_navigate_root_empty ... ok
[INFO] [stdout] test market::configurable_client::tests::test_navigate_root_empty_string_path ... ok
[INFO] [stdout] test market::configurable_client::tests::test_navigate_root_index_out_of_bounds ... ok
[INFO] [stdout] test market::configurable_client::tests::test_navigate_root_missing_key ... ok
[INFO] [stdout] test market::configurable_client::tests::test_navigate_root_nested_with_index ... ok
[INFO] [stdout] test market::configurable_client::tests::test_navigate_root_wildcard ... ok
[INFO] [stdout] test market::configurable_client::tests::test_navigate_root_wildcard_empty_object ... ok
[INFO] [stdout] test market::configurable_client::tests::test_navigate_root_wildcard_on_non_object_string ... ok
[INFO] [stdout] test market::configurable_client::tests::test_navigate_root_wildcard_on_non_object_bool ... ok
[INFO] [stdout] test market::configurable_client::tests::test_parse_levels_not_array_err ... ok
[INFO] [stdout] test market::configurable_client::tests::test_parse_positional_levels ... ok
[INFO] [stdout] test market::configurable_client::tests::test_navigate_root_wildcard_on_non_object_null ... ok
[INFO] [stdout] test market::configurable_client::tests::test_parse_levels_empty_array ... ok
[INFO] [stdout] test market::configurable_client::tests::test_parse_levels_filters_zero_price_and_quantity ... ok
[INFO] [stdout] test market::configurable_client::tests::test_parse_side_field_missing_returns_buy ... ok
[INFO] [stdout] test market::configurable_client::tests::test_parse_object_levels ... ok
[INFO] [stdout] test market::configurable_client::tests::test_parse_levels_object_format_default_fields ... ok
[INFO] [stdout] test market::configurable_client::tests::test_navigate_root_wildcard_on_non_object_array ... ok
[INFO] [stdout] test market::configurable_client::tests::test_navigate_root_wildcard_on_non_object_number ... ok
[INFO] [stdout] test market::configurable_client::tests::test_parse_side_mapping ... ok
[INFO] [stdout] test market::configurable_client::tests::test_parse_side_no_mapping_returns_buy ... ok
[INFO] [stdout] test market::configurable_client::tests::test_parse_side_non_string_number_bool_returns_buy ... ok
[INFO] [stdout] test market::configurable_client::tests::test_value_to_f64_number ... ok
[INFO] [stdout] test market::configurable_client::tests::test_parse_side_unknown_value_returns_buy ... ok
[INFO] [stdout] test market::configurable_client::tests::test_parse_side_string_mapped_to_sell ... ok
[INFO] [stdout] test market::configurable_client::tests::test_parse_side_string_mapped_to_buy ... ok
[INFO] [stdout] test market::descriptor::tests::test_capability_names ... ok
[INFO] [stdout] test market::configurable_client::tests::test_value_to_f64_string ... ok
[INFO] [stdout] test market::descriptor::tests::test_deserialize_ohlc_capability ... ok
[INFO] [stdout] test market::descriptor::tests::test_deserialize_binance_yaml ... ok
[INFO] [stdout] test market::descriptor::tests::test_deserialize_htx_lowercase ... ok
[INFO] [stdout] test market::descriptor::tests::test_capability_names_all ... ok
[INFO] [stdout] test market::descriptor::tests::test_capability_names_partial ... ok
[INFO] [stdout] test market::configurable_client::tests::test_value_to_f64_invalid ... ok
[INFO] [stdout] test market::descriptor::tests::test_deserialize_object_level_format ... ok
[INFO] [stdout] test market::configurable_client::tests::test_parse_side_numeric_value ... ok
[INFO] [stdout] test market::descriptor::tests::test_deserialize_full_descriptor_yaml ... ok
[INFO] [stdout] test market::descriptor::tests::test_capability_set_default ... ok
[INFO] [stdout] test market::descriptor::tests::test_deserialize_ohlc_with_interval_map ... ok
[INFO] [stdout] test market::descriptor::tests::test_has_order_book ... ok
[INFO] [stdout] test market::descriptor::tests::test_endpoint_descriptor_interval_map_defaults_empty ... ok
[INFO] [stdout] test market::descriptor::tests::test_format_pair_upper ... ok
[INFO] [stdout] test market::descriptor::tests::test_deserialize_biconomy_venue_yaml ... ok
[INFO] [stdout] test market::descriptor::tests::test_response_mapping_default ... ok
[INFO] [stdout] test market::descriptor::tests::test_format_pair_dash ... ok
[INFO] [stdout] test market::descriptor::tests::test_format_pair_lower ... ok
[INFO] [stdout] test market::descriptor::tests::test_format_pair_underscore ... ok
[INFO] [stdout] test market::descriptor::tests::test_deserialize_post_method ... ok
[INFO] [stdout] test market::descriptor::tests::test_has_ticker ... ok
[INFO] [stdout] test market::descriptor::tests::test_symbol_case_default_is_upper ... ok
[INFO] [stdout] test market::descriptor::tests::test_has_trades ... ok
[INFO] [stdout] test market::descriptor::tests::test_venue_descriptor_format_pair_lower ... ok
[INFO] [stdout] test market::descriptor::tests::test_venue_descriptor_format_pair_with_separator ... ok
[INFO] [stdout] test market::descriptor::tests::test_http_method_default_is_get ... ok
[INFO] [stdout] test market::descriptor::tests::test_venue_descriptor_format_pair_upper ... ok
[INFO] [stdout] test market::exchange::tests::test_exchange_client_debug ... ok
[INFO] [stdout] test market::exchange::tests::test_exchange_client_from_binance_descriptor ... ok
[INFO] [stdout] test market::exchange::tests::test_exchange_client_format_pair ... ok
[INFO] [stdout] test market::exchange::tests::test_fetch_ohlc_without_capability_returns_error ... ok
[INFO] [stdout] test market::exchange::tests::test_fetch_ticker_without_capability_returns_error ... ok
[INFO] [stdout] test market::exchange::tests::test_fetch_market_snapshot_empty_descriptor_returns_all_none ... ok
[INFO] [stdout] test market::exchange::tests::test_empty_descriptor_has_no_capabilities ... ok
[INFO] [stdout] test market::exchange::tests::test_fetch_order_book_without_capability_returns_error ... ok
[INFO] [stdout] test market::descriptor::tests::test_has_ohlc ... ok
[INFO] [stdout] test market::health::tests::test_health_check_sells_below_peg ... ok
[INFO] [stdout] test market::exchange::tests::test_fetch_recent_trades_without_capability_returns_error ... ok
[INFO] [stdout] test market::health::tests::test_market_summary_from_order_book ... ok
[INFO] [stdout] test market::exchange::tests::test_exchange_client_all_venues ... ok
[INFO] [stdout] test market::registry::tests::test_create_exchange_client_error_unknown_venue ... ok
[INFO] [stdout] test market::registry::tests::test_all_built_in_venues_have_capabilities ... ok
[INFO] [stdout] test market::exchange::tests::test_exchange_client_has_ohlc_for_binance ... ok
[INFO] [stdout] test market::registry::tests::test_registry_get ... ok
[INFO] [stdout] test contract::vulnerability::tests::test_selfdestruct_no_guard_critical ... ok
[INFO] [stdout] test market::registry::tests::test_registry_is_empty_returns_false_for_default ... ok
[INFO] [stdout] test market::registry::tests::test_registry_list_sorted ... ok
[INFO] [stdout] test market::registry::tests::test_registry_suggest_typo ... ok
[INFO] [stdout] test market::registry::tests::test_strsim_distance ... ok
[INFO] [stdout] test market::registry::tests::test_strsim_distance_completely_different ... ok
[INFO] [stdout] test market::registry::tests::test_strsim_distance_single_char_diff ... ok
[INFO] [stdout] test market::registry::tests::test_all_built_in_format_pair ... ok
[INFO] [stdout] test market::registry::tests::test_user_venues_dir_is_reasonable ... ok
[INFO] [stdout] test market::registry::tests::test_registry_contains_existing_and_non_existing ... ok
[INFO] [stdout] test market::registry::tests::test_create_exchange_client_error_includes_did_you_mean ... ok
[INFO] [stdout] test market::registry::tests::test_registry_default_loads_built_in ... ok
[INFO] [stdout] test market::registry::tests::test_validate_yaml_invalid ... ok
[INFO] [stdout] test market::registry::tests::test_registry_suggest_no_match ... ok
[INFO] [stdout] test market::types::tests::test_candle_partial_eq ... ok
[INFO] [stdout] test market::types::tests::test_estimate_buy_zero_price_level ... ok
[INFO] [stdout] test market::types::tests::test_estimate_buy_zero_filled_qty ... ok
[INFO] [stdout] test market::registry::tests::test_validate_yaml_valid ... ok
[INFO] [stdout] test market::types::tests::test_estimate_sell_zero_filled_qty ... ok
[INFO] [stdout] test market::types::tests::test_estimate_sell_zero_mid_price ... ok
[INFO] [stdout] test market::types::tests::test_estimate_sell_zero_price_level ... ok
[INFO] [stdout] test market::registry::tests::test_create_exchange_client_success ... ok
[INFO] [stdout] test market::types::tests::test_estimate_buy_zero_mid_price ... ok
[INFO] [stdout] test market::types::tests::test_candle_construction ... ok
[INFO] [stdout] test market::types::tests::test_market_snapshot_full ... ok
[INFO] [stdout] test market::registry::tests::test_registry_get_nonexistent ... ok
[INFO] [stdout] test market::types::tests::test_market_snapshot_empty ... ok
[INFO] [stdout] test market::types::tests::test_order_book_with_levels ... ok
[INFO] [stdout] test market::types::tests::test_order_book_empty ... ok
[INFO] [stdout] test market::types::tests::test_order_book_level_value ... ok
[INFO] [stdout] test market::types::tests::test_ticker_all_none ... ok
[INFO] [stdout] test market::types::tests::test_trade_side_equality ... ok
[INFO] [stdout] test tests::test_config_error_reexport ... ok
[INFO] [stdout] test market::types::tests::test_trade_optional_fields ... ok
[INFO] [stdout] test market::types::tests::test_ticker_construction ... ok
[INFO] [stdout] test market::types::tests::test_trade_construction ... ok
[INFO] [stdout] test tests::test_config_reexport ... ok
[INFO] [stdout] test market::registry::tests::test_registry_load_returns_ok ... ok
[INFO] [stdout] test tests::test_error_reexport ... ok
[INFO] [stdout] test tests::test_result_type_alias ... ok
[INFO] [stdout] test tests::test_version_format ... ok
[INFO] [stdout] test tests::test_version_not_empty ... ok
[INFO] [stdout] test tokens::tests::test_add_and_get_alias ... ok
[INFO] [stdout] test tokens::tests::test_case_insensitive_operations ... ok
[INFO] [stdout] test tokens::tests::test_add_updates_existing ... ok
[INFO] [stdout] test tokens::tests::test_get_chains_for_missing_alias ... ok
[INFO] [stdout] test tokens::tests::test_get_chains_for_alias ... ok
[INFO] [stdout] test tokens::tests::test_get_without_chain ... ok
[INFO] [stdout] test tokens::tests::test_is_address_solana ... ok
[INFO] [stdout] test market::registry::tests::test_suggest_exact_match_returns_same ... ok
[INFO] [stdout] test tokens::tests::test_is_address ... ok
[INFO] [stdout] test tokens::tests::test_recent_tokens ... ok
[INFO] [stdout] test tokens::tests::test_list_aliases ... ok
[INFO] [stdout] test tokens::tests::test_is_address_tron ... ok
[INFO] [stdout] test tokens::tests::test_remove_cleans_recent ... ok
[INFO] [stdout] test tokens::tests::test_recent_truncation ... ok
[INFO] [stdout] test tokens::tests::test_is_address_edge_cases ... ok
[INFO] [stdout] test tokens::tests::test_remove_alias ... ok
[INFO] [stdout] test tokens::tests::test_remove_last_chain_cleans_up ... ok
[INFO] [stdout] test tokens::tests::test_token_aliases_default ... ok
[INFO] [stdout] test tokens::tests::test_remove_specific_chain ... ok
[INFO] [stdout] test tokens::tests::test_token_info_has_last_used ... ok
[INFO] [stdout] test tokens::tests::test_save_and_load_roundtrip ... ok
[INFO] [stdout] test market::health::tests::test_format_text_without_chain ... ok
[INFO] [stdout] test market::health::tests::test_format_text_bid_outliers_and_many_bid_levels ... ok
[INFO] [stdout] test market::health::tests::test_format_text_with_outliers_and_many_levels ... ok
[INFO] [stdout] test market::health::tests::test_format_text_with_volume_and_spread ... ok
[INFO] [stdout] test market::health::tests::test_format_text_with_chain ... ok
[INFO] [stdout] test market::health::tests::test_format_text_execution_fillable ... ok
[INFO] [stdout] test http::ghola::tests::test_wait_for_bridge_completes ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1248 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.49s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/contract_analysis_tests.rs (/opt/rustwide/target/debug/deps/contract_analysis_tests-e89ef0d4ab661c43)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test analyze_contract_eoa_returns_error ... ok
[INFO] [stderr]      Running tests/domain_tests.rs (/opt/rustwide/target/debug/deps/domain_tests-7698440aba973b7d)
[INFO] [stdout] test mock_http_client_returns_404_when_exhausted ... ok
[INFO] [stdout] test analyze_contract_chain_error_propagates ... ok
[INFO] [stdout] test analyze_contract_with_bytecode_runs_pipeline ... ok
[INFO] [stdout] test mock_http_client_records_requests ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test config_data_dir_override ... ok
[INFO] [stdout] test config_ghola_defaults ... ok
[INFO] [stdout] test address_book_duplicate_rejected ... ok
[INFO] [stdout] test config_data_dir_default_fallback ... ok
[INFO] [stdout] test address_book_load_nonexistent_dir_returns_empty ... ok
[INFO] [stdout] test config_load_partial_yaml_fills_defaults ... ok
[INFO] [stdout] test address_book_create_add_find_remove ... ok
[INFO] [stdout] test config_web_defaults ... ok
[INFO] [stdout] test address_book_persistence_roundtrip ... ok
[INFO] [stdout] test config_ghola_partial_yaml ... ok
[INFO] [stdout] test config_missing_file_returns_defaults ... ok
[INFO] [stdout] test resolve_direct_address_passthrough ... ok
[INFO] [stdout] test config_web_from_yaml ... ok
[INFO] [stdout] test resolve_nonexistent_label_returns_error ... ok
[INFO] [stdout] test resolve_label_returns_address_and_chain ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests scope
[INFO] [stdout] 
[INFO] [stdout] running 29 tests
[INFO] [stdout] test src/chains/dex.rs - chains::dex (line 23) - compile ... ok
[INFO] [stdout] test src/chains/ethereum.rs - chains::ethereum::EthereumClient::new (line 230) - compile ... ok
[INFO] [stdout] test src/chains/ethereum.rs - chains::ethereum (line 19) - compile ... ok
[INFO] [stdout] test src/chains/mod.rs - chains::ChainClientFactory (line 231) - compile ... ok
[INFO] [stdout] test src/chains/solana.rs - chains::solana::SolanaClient::new (line 255) - compile ... ok
[INFO] [stdout] test src/chains/tron.rs - chains::tron::TronClient::new (line 163) - compile ... ok
[INFO] [stdout] test src/chains/solana.rs - chains::solana (line 17) - compile ... ok
[INFO] [stdout] test src/chains/tron.rs - chains::tron (line 16) - compile ... ok
[INFO] [stdout] test src/display/report.rs - display::report (line 16) - compile ... ok
[INFO] [stdout] test src/chains/mod.rs - chains::infer_chain_from_hash (line 836) ... ok
[INFO] [stdout] test src/lib.rs - (line 103) - compile ... ok
[INFO] [stdout] test src/chains/mod.rs - chains::infer_chain_from_address (line 789) ... ok
[INFO] [stdout] test src/lib.rs - chains (line 236) - compile ... ok
[INFO] [stdout] test src/display/format.rs - display::format::format_large_number (line 31) ... ok
[INFO] [stdout] test src/config.rs - config::Config (line 60) ... ok
[INFO] [stdout] test src/lib.rs - display (line 228) - compile ... ok
[INFO] [stdout] test src/config.rs - config::Config::load (line 249) ... ok
[INFO] [stdout] test src/lib.rs - chains (line 253) - compile ... ok
[INFO] [stdout] test src/lib.rs - http (line 257) - compile ... ok
[INFO] [stdout] test src/display/format.rs - display::format::format_token_balance (line 60) ... ok
[INFO] [stdout] test src/lib.rs - market (line 271) - compile ... ok
[INFO] [stdout] test src/display/format.rs - display::format::format_usd (line 7) ... ok
[INFO] [stdout] test src/lib.rs - tokens (line 241) - compile ... ok
[INFO] [stdout] test src/display/charts.rs - display::charts (line 14) ... ok
[INFO] [stdout] test src/lib.rs - (line 168) ... ok
[INFO] [stdout] test src/lib.rs - chains (line 270) - compile ... ok
[INFO] [stdout] test src/lib.rs - version (line 264) ... ok
[INFO] [stdout] test src/error.rs - error::Result (line 165) ... ok
[INFO] [stdout] test src/lib.rs - error (line 244) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 2.38s; merged doctests compilation took 2.36s
[INFO] running `Command { std: "docker" "inspect" "70b79138ab477aec7332235bda3024784b83229c49b5b8a48a5bc98259304aab", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "70b79138ab477aec7332235bda3024784b83229c49b5b8a48a5bc98259304aab", kill_on_drop: false }`
[INFO] [stdout] 70b79138ab477aec7332235bda3024784b83229c49b5b8a48a5bc98259304aab
