[INFO] fetching crate scope-bca-cli 0.5.6...
[INFO] testing scope-bca-cli-0.5.6 against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739-1
[INFO] extracting crate scope-bca-cli 0.5.6 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate scope-bca-cli 0.5.6
[INFO] finished tweaking crates.io crate scope-bca-cli 0.5.6
[INFO] tweaked toml for crates.io crate scope-bca-cli 0.5.6 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate scope-bca-cli 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-cli 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-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] e0ff493c279db8da38f5439da0670a9459cd256d1cbbeb4910a4d7e3cad73f5d
[INFO] running `Command { std: "docker" "start" "-a" "e0ff493c279db8da38f5439da0670a9459cd256d1cbbeb4910a4d7e3cad73f5d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e0ff493c279db8da38f5439da0670a9459cd256d1cbbeb4910a4d7e3cad73f5d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e0ff493c279db8da38f5439da0670a9459cd256d1cbbeb4910a4d7e3cad73f5d", kill_on_drop: false }`
[INFO] [stdout] e0ff493c279db8da38f5439da0670a9459cd256d1cbbeb4910a4d7e3cad73f5d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 03b572fd525d556d0719e01ccf8864201b33e62811cfa5d86e2d4390c6e3f555
[INFO] running `Command { std: "docker" "start" "-a" "03b572fd525d556d0719e01ccf8864201b33e62811cfa5d86e2d4390c6e3f555", kill_on_drop: false }`
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling cc v1.2.55
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling zmij v1.0.19
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling clap_builder v4.5.57
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling colored v2.2.0
[INFO] [stderr]    Compiling line-clipping v0.3.5
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling lru v0.16.3
[INFO] [stderr]    Compiling owo-colors v4.2.3
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling drawille v0.3.0
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling rgb v0.8.52
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling nibble_vec v0.1.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling compression-codecs v0.4.37
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling endian-type v0.1.2
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling radix_trie v0.2.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling textplots v0.8.7
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling bs58 v0.5.1
[INFO] [stderr]    Compiling fd-lock v4.0.4
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling indicatif v0.17.11
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling rustyline v14.0.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[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 futures-macro v0.3.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling kasuari v0.4.11
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.12
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling darling v0.23.0
[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 clap v4.5.57
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling clap_complete v4.5.66
[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 ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[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 futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[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 url v2.5.8
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[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
[INFO] [stderr]    Compiling scope-bca-cli v0.5.6 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 03s
[INFO] running `Command { std: "docker" "inspect" "03b572fd525d556d0719e01ccf8864201b33e62811cfa5d86e2d4390c6e3f555", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "03b572fd525d556d0719e01ccf8864201b33e62811cfa5d86e2d4390c6e3f555", kill_on_drop: false }`
[INFO] [stdout] 03b572fd525d556d0719e01ccf8864201b33e62811cfa5d86e2d4390c6e3f555
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] e3a5ea2f8b6ed2408262a319baeb86df06cb3f9892e993d5a3e76549e6116fd1
[INFO] running `Command { std: "docker" "start" "-a" "e3a5ea2f8b6ed2408262a319baeb86df06cb3f9892e993d5a3e76549e6116fd1", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling zerocopy v0.8.38
[INFO] [stderr]    Compiling predicates-core v1.0.9
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling assert_cmd v2.1.2
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling colored v3.1.1
[INFO] [stderr]    Compiling tempfile v3.24.0
[INFO] [stderr]    Compiling predicates-tree v1.0.12
[INFO] [stderr]    Compiling predicates v3.1.3
[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 tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling async-compression v0.4.41
[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
[INFO] [stderr]    Compiling scope-bca-cli v0.5.6 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `KeyEvent`
[INFO] [stdout]    --> src/cli/monitor/mod.rs:605:37
[INFO] [stdout]     |
[INFO] [stdout] 605 |     use crossterm::event::{KeyCode, KeyEvent, KeyModifiers};
[INFO] [stdout]     |                                     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 01s
[INFO] running `Command { std: "docker" "inspect" "e3a5ea2f8b6ed2408262a319baeb86df06cb3f9892e993d5a3e76549e6116fd1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e3a5ea2f8b6ed2408262a319baeb86df06cb3f9892e993d5a3e76549e6116fd1", kill_on_drop: false }`
[INFO] [stdout] e3a5ea2f8b6ed2408262a319baeb86df06cb3f9892e993d5a3e76549e6116fd1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] dabb6b0bc50d9d636542f309f604527fe98a391e7842674e38c37ace22dafa13
[INFO] running `Command { std: "docker" "start" "-a" "dabb6b0bc50d9d636542f309f604527fe98a391e7842674e38c37ace22dafa13", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `KeyEvent`
[INFO] [stderr]    --> src/cli/monitor/mod.rs:605:37
[INFO] [stderr]     |
[INFO] [stderr] 605 |     use crossterm::event::{KeyCode, KeyEvent, KeyModifiers};
[INFO] [stderr]     |                                     ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `scope-bca-cli` (lib test) generated 1 warning (run `cargo fix --lib -p scope-bca-cli --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.50s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/scope_cli-670c704f52e51691)
[INFO] [stdout] 
[INFO] [stdout] running 1232 tests
[INFO] [stdout] test cli::address::tests::test_address_report_clone ... ok
[INFO] [stdout] test cli::address::tests::test_address_args_default_values ... ok
[INFO] [stdout] test cli::address::tests::test_address_args_clone ... ok
[INFO] [stdout] test cli::address::tests::test_address_args_debug ... ok
[INFO] [stdout] test cli::address::tests::test_address_report_deserialization ... ok
[INFO] [stdout] test cli::address::tests::test_address_report_serialization ... ok
[INFO] [stdout] test cli::address::tests::test_analyze_address_no_txs_no_tokens ... ok
[INFO] [stdout] test cli::address::tests::test_analyze_address_tx_fallback_on_error ... ok
[INFO] [stdout] test cli::address::tests::test_analyze_address_tx_with_none_fields ... ok
[INFO] [stdout] test cli::address::tests::test_output_report_json ... ok
[INFO] [stdout] test cli::address::tests::test_analyze_address_tokens_fallback_on_error ... ok
[INFO] [stdout] test cli::address::tests::test_output_report_table_empty_tokens ... ok
[INFO] [stdout] test cli::address::tests::test_output_report_table_no_usd ... ok
[INFO] [stdout] test cli::address::tests::test_output_report_markdown ... ok
[INFO] [stdout] test cli::address::tests::test_balance_clone ... ok
[INFO] [stdout] test cli::address::tests::test_address_args_with_options ... ok
[INFO] [stdout] test cli::address::tests::test_run_with_tokens ... ok
[INFO] [stdout] test cli::address::tests::test_run_all_features ... ok
[INFO] [stdout] test cli::address::tests::test_output_report_csv ... ok
[INFO] [stdout] test cli::address::tests::test_token_balance_serialization ... ok
[INFO] [stdout] test cli::address::tests::test_run_ethereum_address ... ok
[INFO] [stdout] test cli::address::tests::test_transaction_summary_serialization ... ok
[INFO] [stdout] test cli::address::tests::test_transaction_summary_with_none_to_and_false_status ... ok
[INFO] [stdout] test cli::address::tests::test_balance_serialization ... ok
[INFO] [stdout] test cli::address::tests::test_analyze_address_with_mock ... ok
[INFO] [stdout] test cli::address::tests::test_output_report_table_no_tokens ... ok
[INFO] [stdout] test cli::address::tests::test_validate_address_invalid_hex ... ok
[INFO] [stdout] test cli::address::tests::test_output_report_table ... ok
[INFO] [stdout] test cli::address::tests::test_run_with_transactions ... ok
[INFO] [stdout] test cli::address::tests::test_run_csv_format ... ok
[INFO] [stdout] test cli::address::tests::test_run_auto_detect_solana ... ok
[INFO] [stdout] test cli::address::tests::test_validate_address_invalid_solana ... ok
[INFO] [stdout] test cli::address::tests::test_validate_address_missing_prefix ... ok
[INFO] [stdout] test cli::address::tests::test_validate_address_too_long ... ok
[INFO] [stdout] test cli::address::tests::test_validate_address_too_short ... ok
[INFO] [stdout] test cli::address::tests::test_validate_address_unsupported_chain ... ok
[INFO] [stdout] test cli::address::tests::test_validate_address_valid_aegis ... ok
[INFO] [stdout] test cli::address::tests::test_validate_address_valid_arbitrum ... ok
[INFO] [stdout] test cli::address::tests::test_validate_address_valid_bsc ... ok
[INFO] [stdout] test cli::address::tests::test_validate_address_valid_base ... ok
[INFO] [stdout] test cli::address::tests::test_validate_address_valid_ethereum ... ok
[INFO] [stdout] test cli::address::tests::test_validate_address_valid_lowercase ... ok
[INFO] [stdout] test cli::address::tests::test_validate_address_valid_optimism ... ok
[INFO] [stdout] test cli::address::tests::test_validate_address_valid_polygon ... ok
[INFO] [stdout] test cli::address_book::tests::test_address_book_add_duplicate ... ok
[INFO] [stdout] test cli::address::tests::test_validate_address_invalid_tron ... ok
[INFO] [stdout] test cli::address_book::tests::test_address_book_remove_address_case_insensitive ... ok
[INFO] [stdout] test cli::address_book::tests::test_address_book_new ... ok
[INFO] [stdout] test cli::address_book::tests::test_address_book_summary_to_markdown_token_without_symbol_uses_contract ... ok
[INFO] [stdout] test cli::address_book::tests::test_address_book_remove_args_parsing ... ok
[INFO] [stdout] test cli::address_book::tests::test_address_book_add_args_parsing ... ok
[INFO] [stdout] test cli::address_book::tests::test_address_book_summary_to_markdown_empty_tokens_display ... ok
[INFO] [stdout] test cli::address_book::tests::test_address_book_args_parsing ... ok
[INFO] [stdout] test cli::address_book::tests::test_address_book_summary_args_parsing ... ok
[INFO] [stdout] test cli::address_book::tests::test_address_book_summary_to_markdown_basic ... ok
[INFO] [stdout] test cli::address_book::tests::test_address_book_summary_to_markdown_with_usd ... ok
[INFO] [stdout] test cli::address_book::tests::test_address_book_summary_to_markdown_empty ... ok
[INFO] [stdout] test cli::address_book::tests::test_find_by_label_empty_address_book ... ok
[INFO] [stdout] test cli::address_book::tests::test_find_by_label_no_label_entries ... ok
[INFO] [stdout] test cli::address::tests::test_validate_address_valid_tron ... ok
[INFO] [stdout] test cli::address_book::tests::test_address_book_summary_to_markdown_with_tokens ... ok
[INFO] [stdout] test cli::address_book::tests::test_find_by_label_with_whitespace ... ok
[INFO] [stdout] test cli::address_book::tests::test_chain_balance_serialization_without_usd ... ok
[INFO] [stdout] test cli::address_book::tests::test_find_by_label_not_found ... ok
[INFO] [stdout] test cli::address_book::tests::test_find_by_label_case_insensitive ... ok
[INFO] [stdout] test cli::address_book::tests::test_get_native_symbol_bsc ... ok
[INFO] [stdout] test cli::address_book::tests::test_address_book_load_missing_dir ... ok
[INFO] [stdout] test cli::address_book::tests::test_get_native_symbol_polygon ... ok
[INFO] [stdout] test cli::address_book::tests::test_get_native_symbol_tron ... ok
[INFO] [stdout] test cli::address_book::tests::test_get_native_symbol_unknown ... ok
[INFO] [stdout] test cli::address_book::tests::test_address_book_add_and_save_roundtrip ... ok
[INFO] [stdout] test cli::address_book::tests::test_address_book_save_creates_directory ... ok
[INFO] [stdout] test cli::address_book::tests::test_resolve_address_book_input_load_fails_returns_none ... ok
[INFO] [stdout] test cli::address_book::tests::test_address_book_load_invalid_yaml_returns_error ... ok
[INFO] [stdout] test cli::address_book::tests::test_resolve_address_book_input_by_label ... ok
[INFO] [stdout] test cli::address_book::tests::test_find_by_label_exact_match ... ok
[INFO] [stdout] test cli::address_book::tests::test_get_native_symbol_evm_l2s ... ok
[INFO] [stdout] test cli::address_book::tests::test_resolve_address_book_input_case_insensitive_label ... ok
[INFO] [stdout] test cli::address::tests::test_validate_address_valid_solana ... ok
[INFO] [stdout] test cli::address_book::tests::test_get_native_symbol_solana ... ok
[INFO] [stdout] test cli::address_book::tests::test_get_native_symbol_ethereum ... ok
[INFO] [stdout] test cli::address_book::tests::test_resolve_address_book_input_raw_address_not_in_book_returns_none ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_add_and_list ... ok
[INFO] [stdout] test cli::address_book::tests::test_resolve_address_book_input_by_address ... ok
[INFO] [stdout] test cli::address_book::tests::test_resolve_address_book_input_not_found ... ok
[INFO] [stdout] test cli::address_book::tests::test_resolve_address_book_input_empty_address_book ... ok
[INFO] [stdout] test cli::address_book::tests::test_resolve_address_book_input_label_not_found_with_available_labels ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_summary_empty ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_list_table_format ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_summary_csv ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_list_csv_format ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_summary_table ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_format_override_from_args ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_summary_no_format ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_summary_with_tag_filter ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_summary_markdown_format ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_summary_with_report_file ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_summary_table_with_tokens ... ok
[INFO] [stdout] test cli::address_book::tests::test_watched_address_debug ... ok
[INFO] [stdout] test cli::address_report::tests::test_capitalize_chain_empty ... ok
[INFO] [stdout] test cli::address_report::tests::test_generate_address_report_section_minimal ... ok
[INFO] [stdout] test cli::address_book::tests::test_token_summary_serialization ... ok
[INFO] [stdout] test cli::address_report::tests::test_generate_address_report_full ... ok
[INFO] [stdout] test cli::address_report::tests::test_generate_address_report_section_with_tokens ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_add_with_tags ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_summary_multiple_chains ... ok
[INFO] [stdout] test cli::address_report::tests::test_report_transactions_more_than_20 ... ok
[INFO] [stdout] test cli::compliance::tests::test_detect_chain_bitcoin_bech32 ... ok
[INFO] [stdout] test cli::compliance::tests::test_detect_chain_bitcoin_p2pkh ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_summary_with_chain_filter ... ok
[INFO] [stdout] test cli::compliance::tests::test_detect_chain_solana_long ... ok
[INFO] [stdout] test cli::compliance::tests::test_detect_chain_bitcoin_p2sh ... ok
[INFO] [stdout] test cli::compliance::tests::test_detect_chain_solana_short ... ok
[INFO] [stdout] test cli::compliance::tests::test_detect_chain_ethereum ... ok
[INFO] [stdout] test cli::compliance::tests::test_detect_chain_tron ... ok
[INFO] [stdout] test cli::compliance::tests::test_format_compliance_report_detailed ... ok
[INFO] [stdout] test cli::compliance::tests::test_format_compliance_report_travel_rule_type ... ok
[INFO] [stdout] test cli::compliance::tests::test_detect_chain_unknown ... ok
[INFO] [stdout] test cli::address_report::tests::test_generate_address_report_section_with_transactions ... ok
[INFO] [stdout] test cli::compliance::tests::test_format_compliance_report_sar_type ... ok
[INFO] [stdout] test cli::compliance::tests::test_format_compliance_report_summary ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_analyze_all_patterns ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_analyze_no_api_key ... ok
[INFO] [stdout] test cli::compliance::tests::test_format_compliance_report_with_pattern_analysis ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_compliance_report ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_compliance_report_eu_detailed ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_compliance_report_switzerland ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_compliance_report_singapore_travel_rule ... ok
[INFO] [stdout] test cli::address_report::tests::test_save_address_report_to_file ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_compliance_report_uk_sar ... ok
[INFO] [stdout] test cli::address_report::tests::test_generate_dossier_report ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_add_without_label ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_list_no_format ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_risk_markdown_detailed ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_analyze_with_detect_chain_failure ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_list_markdown_format ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_list_empty ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_remove_nonexistent_address ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_remove ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_risk_json_format ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_summary_with_mock ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_trace_with_api_client_connection_refused ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_analyze_with_api_client ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_analyze_with_api_client_error ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_trace_no_flag_suspicious ... ok
[INFO] [stdout] test cli::address_book::tests::test_run_address_book_summary_with_unsupported_chain ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_trace_no_api_key ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_risk_yaml_format ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_trace_with_api_client ... ok
[INFO] [stdout] test cli::compliance::tests::test_jurisdiction_debug ... ok
[INFO] [stdout] test cli::compliance::tests::test_parse_address_line_no_chain ... ok
[INFO] [stdout] test cli::compliance::tests::test_parse_address_line_with_chain_trimmed ... ok
[INFO] [stdout] test cli::compliance::tests::test_parse_address_line_with_chain ... ok
[INFO] [stdout] test cli::compliance::tests::test_report_type_debug ... ok
[INFO] [stdout] test cli::compliance::tests::test_resolve_compliance_targets_from_file ... ok
[INFO] [stdout] test cli::compliance::tests::test_pattern_type_debug ... ok
[INFO] [stdout] test cli::compliance::tests::test_resolve_compliance_targets_single_address ... ok
[INFO] [stdout] test cli::compliance::tests::test_resolve_compliance_targets_file_empty_and_comments_only ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_trace_with_api_client_error ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_risk_with_api_client_json_export ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_risk_export_markdown_extension ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_risk_with_api_client ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_risk_with_export ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_risk_no_api_key ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_risk_auto_detect_chain ... ok
[INFO] [stdout] test cli::compliance::tests::test_handle_risk_export_yaml_extension ... ok
[INFO] [stdout] test cli::contract::tests::test_print_report_defi_empty_token_standards ... ok
[INFO] [stdout] test cli::contract::tests::test_print_report_defi_slippage_protected_no_deadline ... ok
[INFO] [stdout] test cli::crawl::tests::test_abbreviate_address ... ok
[INFO] [stdout] test cli::contract::tests::test_print_report_external_audit_with_url ... ok
[INFO] [stdout] test cli::crawl::tests::test_abbreviate_address_boundary_16_chars ... ok
[INFO] [stdout] test cli::crawl::tests::test_abbreviate_address_empty ... ok
[INFO] [stdout] test cli::crawl::tests::test_analytics_json_no_optional_fields ... ok
[INFO] [stdout] test cli::crawl::tests::test_abbreviate_address_boundary_17_chars ... ok
[INFO] [stdout] test cli::crawl::tests::test_analytics_json_serialization ... ok
[INFO] [stdout] test cli::crawl::tests::test_crawl_args_all_periods ... ok
[INFO] [stdout] test cli::crawl::tests::test_crawl_args_defaults ... ok
[INFO] [stdout] test cli::crawl::tests::test_crawl_args_with_report ... ok
[INFO] [stdout] test cli::crawl::tests::test_fetch_analytics_for_input ... ok
[INFO] [stdout] test cli::crawl::tests::test_crawl_args_with_chain_and_period ... ok
[INFO] [stdout] test cli::crawl::tests::test_format_large_number ... ok
[INFO] [stdout] test cli::crawl::tests::test_format_large_number_boundary_b ... ok
[INFO] [stdout] test cli::crawl::tests::test_format_large_number_negative ... ok
[INFO] [stdout] test cli::crawl::tests::test_format_large_number_small ... ok
[INFO] [stdout] test cli::crawl::tests::test_format_large_number_boundary_m ... ok
[INFO] [stdout] test cli::crawl::tests::test_format_large_number_very_large ... ok
[INFO] [stdout] test cli::crawl::tests::test_format_large_number_zero ... ok
[INFO] [stdout] test cli::crawl::tests::test_format_large_number_boundary_k ... ok
[INFO] [stdout] test cli::contract::tests::test_print_report_minimal ... ok
[INFO] [stdout] test cli::contract::tests::test_print_report_external_sourcify_false ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_csv_no_market_cap ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_csv ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_csv_with_market_cap_and_fdv ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_csv_with_all_fields ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_csv_no_holders ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_csv_no_panic ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_json ... ok
[INFO] [stdout] test cli::contract::tests::test_print_report_access_control ... ok
[INFO] [stdout] test cli::contract::tests::test_print_report_access_control_with_roles ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_explorer_no_concentration ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_explorer_long_address_truncation ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_explorer_with_concentration ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_no_dex_data ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_no_holders ... ok
[INFO] [stdout] test cli::contract::tests::test_print_report_external ... ok
[INFO] [stdout] test cli::contract::tests::test_print_report_not_proxy ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_routing_has_dex_data ... ok
[INFO] [stdout] test cli::contract::tests::test_print_report_access_control_empty_roles ... ok
[INFO] [stdout] test cli::contract::tests::test_print_report_proxy_no_impl_or_admin ... ok
[INFO] [stdout] test cli::contract::tests::test_print_report_defi ... ok
[INFO] [stdout] test cli::contract::tests::test_print_report_with_proxy ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_with_dex_data_and_charts ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_explorer_no_supply ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_explorer_short_addresses ... ok
[INFO] [stdout] test cli::contract::tests::test_print_report_verified_with_source ... ok
[INFO] [stdout] test cli::crawl::tests::test_period_as_seconds ... ok
[INFO] [stdout] test cli::crawl::tests::test_period_default ... ok
[INFO] [stdout] test cli::crawl::tests::test_period_label ... ok
[INFO] [stdout] test cli::crawl::tests::test_period_labels_all ... ok
[INFO] [stdout] test cli::crawl::tests::test_period_seconds_all ... ok
[INFO] [stdout] test cli::crawl::tests::test_prompt_save_alias_empty ... ok
[INFO] [stdout] test cli::crawl::tests::test_prompt_save_alias_impl_flush_fails ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_with_dex_data ... ok
[INFO] [stdout] test cli::crawl::tests::test_prompt_save_alias_impl_write_fails ... ok
[INFO] [stdout] test cli::crawl::tests::test_prompt_save_alias_no ... ok
[INFO] [stdout] test cli::crawl::tests::test_prompt_save_alias_other_input ... ok
[INFO] [stdout] test cli::crawl::tests::test_prompt_save_alias_uppercase_y ... ok
[INFO] [stdout] test cli::crawl::tests::test_prompt_save_alias_impl_read_fails ... ok
[INFO] [stdout] test cli::crawl::tests::test_prompt_save_alias_yes ... ok
[INFO] [stdout] test cli::crawl::tests::test_prompt_save_alias_uppercase_yes ... ok
[INFO] [stdout] test cli::crawl::tests::test_prompt_save_alias_yes_full ... ok
[INFO] [stdout] test cli::crawl::tests::test_run_crawl_csv_output ... ok
[INFO] [stdout] test cli::crawl::tests::test_run_crawl_chain_without_holder_support ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_explorer_with_supply_and_holders ... ok
[INFO] [stdout] test cli::crawl::tests::test_run_crawl_json_output ... ok
[INFO] [stdout] test cli::crawl::tests::test_run_crawl_markdown_output ... ok
[INFO] [stdout] test cli::crawl::tests::test_run_crawl_no_dex_data_evm ... ok
[INFO] [stdout] test cli::crawl::tests::test_run_crawl_symbol_resolution_via_factory_dex ... ok
[INFO] [stdout] test cli::contract::tests::test_print_report_source_no_optimization ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_explorer_only ... ok
[INFO] [stdout] test cli::crawl::tests::test_run_crawl_unsupported_chain_no_dex ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_with_dex_data_no_charts ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_with_dex_with_charts ... ok
[INFO] [stdout] Selected: TKN (Test Token) on ethereum - $10.000000
[INFO] [stdout] test cli::crawl::tests::test_select_token_auto_select ... ok
[INFO] [stdout] test cli::crawl::tests::test_select_token_impl_auto_select_multi ... ok
[INFO] [stdout] test cli::crawl::tests::test_select_token_impl_single_result ... ok
[INFO] [stdout] test cli::crawl::tests::test_select_token_invalid_input ... ok
[INFO] [stdout] test cli::crawl::tests::test_select_token_out_of_range_high ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_routing_no_dex_data ... ok
[INFO] [stdout] test cli::crawl::tests::test_select_token_out_of_range_zero ... ok
[INFO] [stdout] test cli::crawl::tests::test_select_token_shows_address_column ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_with_dex_empty_pairs ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_with_dex_no_market_cap ... ok
[INFO] [stdout] test cli::crawl::tests::test_select_token_user_selects_third ... ok
[INFO] [stdout] Selected: SINGLE (Single Token) on ethereum - $0.000000
[INFO] [stdout] test cli::crawl::tests::test_select_token_single_result ... ok
[INFO] [stdout] test cli::crawl::tests::test_select_token_user_selects_second ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_with_dex_top_10_only ... ok
[INFO] [stdout] test cli::discover::tests::test_discover_empty_response ... ok
[INFO] [stdout] test cli::discover::tests::test_discover_csv_format ... ok
[INFO] [stdout] test cli::discover::tests::test_truncate_address_long ... ok
[INFO] [stdout] test cli::discover::tests::test_truncate_address_short ... ok
[INFO] [stdout] test cli::errors::tests::test_display_error_api ... ok
[INFO] [stdout] test cli::discover::tests::test_discover_api_error ... ok
[INFO] [stdout] test cli::errors::tests::test_display_error_chain ... ok
[INFO] [stdout] test cli::errors::tests::test_display_error_not_found ... ok
[INFO] [stdout] test cli::errors::tests::test_display_error_other ... ok
[INFO] [stdout] test cli::errors::tests::test_display_error_styled_non_tty ... ok
[INFO] [stdout] test cli::errors::tests::test_display_error_invalid_address ... ok
[INFO] [stdout] test cli::discover::tests::test_discover_top_boosts_json ... ok
[INFO] [stdout] test cli::errors::tests::test_display_error_styled_tty_api_auth ... ok
[INFO] [stdout] test cli::errors::tests::test_display_error_styled_tty_config ... ok
[INFO] [stdout] test cli::errors::tests::test_display_error_styled_tty_invalid_address ... ok
[INFO] [stdout] test cli::errors::tests::test_display_error_styled_tty_network ... ok
[INFO] [stdout] test cli::errors::tests::test_display_error_styled_tty_not_found ... ok
[INFO] [stdout] test cli::errors::tests::test_display_error_styled_tty_other_no_hint ... ok
[INFO] [stdout] test cli::errors::tests::test_error_suggestion_api_no_auth ... ok
[INFO] [stdout] test cli::errors::tests::test_error_suggestion_api_key_keyword ... ok
[INFO] [stdout] test cli::errors::tests::test_error_suggestion_config ... ok
[INFO] [stdout] test cli::errors::tests::test_error_suggestion_api_auth ... ok
[INFO] [stdout] test cli::errors::tests::test_error_suggestion_invalid_address ... ok
[INFO] [stdout] test cli::errors::tests::test_error_suggestion_network ... ok
[INFO] [stdout] test cli::errors::tests::test_error_suggestion_not_found ... ok
[INFO] [stdout] test cli::errors::tests::test_error_suggestion_other_returns_none ... ok
[INFO] [stdout] test cli::errors::tests::test_error_suggestion_invalid_hash ... ok
[INFO] [stdout] test cli::export::tests::test_days_since_epoch_basic ... ok
[INFO] [stdout] test cli::export::tests::test_days_since_epoch_future_year ... ok
[INFO] [stdout] test cli::export::tests::test_days_since_epoch_invalid_day ... ok
[INFO] [stdout] test cli::export::tests::test_days_since_epoch_invalid_month ... ok
[INFO] [stdout] test cli::export::tests::test_days_since_epoch_known_date ... ok
[INFO] [stdout] test cli::export::tests::test_days_since_epoch_leap_year ... ok
[INFO] [stdout] test cli::export::tests::test_detect_format_csv ... ok
[INFO] [stdout] test cli::export::tests::test_days_since_epoch_year_before_epoch ... ok
[INFO] [stdout] test cli::export::tests::test_detect_format_json ... ok
[INFO] [stdout] test cli::crawl::tests::test_run_crawl_day30_period ... ok
[INFO] [stdout] test cli::export::tests::test_detect_format_markdown ... ok
[INFO] [stdout] test cli::export::tests::test_detect_format_no_extension ... ok
[INFO] [stdout] test cli::export::tests::test_detect_format_txt ... ok
[INFO] [stdout] test cli::export::tests::test_export_address_book_csv ... ok
[INFO] [stdout] test cli::crawl::tests::test_run_crawl_table_output ... ok
[INFO] [stdout] test cli::export::tests::test_export_address_book_markdown ... ok
[INFO] [stdout] test cli::export::tests::test_export_address_book_table_error ... ok
[INFO] [stdout] test cli::export::tests::test_export_address_book_json ... ok
[INFO] [stdout] test cli::export::tests::test_export_args_debug ... ok
[INFO] [stdout] test cli::export::tests::test_export_data_debug ... ok
[INFO] [stdout] test cli::export::tests::test_export_args_address_book_flag ... ok
[INFO] [stdout] test cli::export::tests::test_export_data_debug_with_transactions ... ok
[INFO] [stdout] test cli::export::tests::test_export_data_serialization ... ok
[INFO] [stdout] test cli::export::tests::test_export_args_with_all_options ... ok
[INFO] [stdout] test cli::export::tests::test_export_report_debug ... ok
[INFO] [stdout] test cli::export::tests::test_parse_date_to_ts_epoch ... ok
[INFO] [stdout] test cli::export::tests::test_export_report_serialization ... ok
[INFO] [stdout] test cli::export::tests::test_parse_date_to_ts_future_date ... ok
[INFO] [stdout] test cli::export::tests::test_parse_date_to_ts_invalid_format ... ok
[INFO] [stdout] test cli::export::tests::test_parse_date_to_ts_invalid_values ... ok
[INFO] [stdout] test cli::export::tests::test_parse_date_to_ts_leap_year ... ok
[INFO] [stdout] test cli::export::tests::test_parse_date_to_ts_valid ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_with_dex_with_holders ... ok
[INFO] [stdout] test cli::export::tests::test_parse_date_to_ts_non_leap_year_feb_29 ... ok
[INFO] [stdout] test cli::export::tests::test_export_args_parsing ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_with_dex_top_100_concentration ... ok
[INFO] [stdout] test cli::export::tests::test_run_export_address_table_error ... ok
[INFO] [stdout] test cli::discover::tests::test_discover_boosts_with_chain_filter ... ok
[INFO] [stdout] test cli::export::tests::test_run_export_address_with_date_filter_after ... ok
[INFO] [stdout] test cli::export::tests::test_run_export_address_non_ethereum_chain ... ok
[INFO] [stdout] test cli::export::tests::test_run_export_address_csv ... ok
[INFO] [stdout] test cli::export::tests::test_detect_format_unknown_defaults_to_json ... ok
[INFO] [stdout] test cli::export::tests::test_run_export_address_with_date_filter_before ... ok
[INFO] [stdout] test cli::export::tests::test_run_export_address_markdown ... ok
[INFO] [stdout] test cli::export::tests::test_run_export_address_json ... ok
[INFO] [stdout] test cli::export::tests::test_run_export_with_date_filter ... ok
[INFO] [stdout] test cli::export::tests::test_run_no_source_error ... ok
[INFO] [stdout] test cli::export::tests::test_transaction_export_debug ... ok
[INFO] [stdout] test cli::export::tests::test_transaction_export_debug_no_to ... ok
[INFO] [stdout] test cli::insights::tests::test_chain_label_address ... ok
[INFO] [stdout] test cli::insights::tests::test_chain_label_token ... ok
[INFO] [stdout] test cli::insights::tests::test_chain_label_transaction ... ok
[INFO] [stdout] test cli::export::tests::test_transaction_export_serialization ... ok
[INFO] [stdout] test cli::insights::tests::test_classify_tx_type_contract_creation ... ok
[INFO] [stdout] test cli::insights::tests::test_classify_tx_type_dex_swap ... ok
[INFO] [stdout] test cli::insights::tests::test_classify_tx_type_erc20_approve ... ok
[INFO] [stdout] test cli::insights::tests::test_chain_label_combined ... ok
[INFO] [stdout] test cli::insights::tests::test_classify_tx_type_contract_call ... ok
[INFO] [stdout] test cli::insights::tests::test_classify_tx_type_dex_swaps ... ok
[INFO] [stdout] test cli::insights::tests::test_classify_tx_type ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_with_dex_multiple_pairs ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value ... ok
[INFO] [stdout] test cli::insights::tests::test_classify_tx_type_erc20_transfer_from ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value_aegis ... ok
[INFO] [stdout] test cli::insights::tests::test_classify_tx_type_multicall ... ok
[INFO] [stdout] test cli::insights::tests::test_classify_tx_type_native_transfer ... ok
[INFO] [stdout] test cli::insights::tests::test_classify_tx_type_native_transfer_empty ... ok
[INFO] [stdout] test cli::insights::tests::test_classify_tx_type_transfer_from ... ok
[INFO] [stdout] test cli::insights::tests::test_classify_tx_type_unknown_contract_call ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value_arbitrum ... ok
[INFO] [stdout] test cli::insights::tests::test_classify_tx_type_erc20_transfer ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value_base ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value_decimal_string ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value_bsc ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value_empty_hex_additional ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value_high_value ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value_invalid_hex_parse ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value_optimism ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value_hex ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value_ethereum_wei ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value_unknown_chain_defaults_18_decimals ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value_tron_additional ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value_polygon ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value_solana_additional ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value_solana ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value_high_value_threshold ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value_tron ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value_zero ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value_zero_decimal ... ok
[INFO] [stdout] test cli::insights::tests::test_infer_target_chain_override ... ok
[INFO] [stdout] test cli::insights::tests::test_format_tx_value_empty_hex ... ok
[INFO] [stdout] test cli::crawl::tests::test_output_table_with_dex_no_charts ... ok
[INFO] [stdout] test cli::insights::tests::test_infer_target_chain_override_with_address ... ok
[INFO] [stdout] test cli::insights::tests::test_infer_target_evm_address ... ok
[INFO] [stdout] test cli::insights::tests::test_infer_target_long_token_name ... ok
[INFO] [stdout] test cli::insights::tests::test_infer_target_evm_tx_hash ... ok
[INFO] [stdout] test cli::insights::tests::test_infer_target_token_with_chain_override ... ok
[INFO] [stdout] test cli::insights::tests::test_infer_target_solana_address ... ok
[INFO] [stdout] test cli::insights::tests::test_infer_target_tron_tx_hash ... ok
[INFO] [stdout] test cli::insights::tests::test_infer_target_tron_address ... ok
[INFO] [stdout] test cli::insights::tests::test_infer_target_token_symbol ... ok
[INFO] [stdout] test cli::insights::tests::test_infer_target_tx_hash_with_chain_override ... ok
[INFO] [stdout] test cli::insights::tests::test_insights_args_debug ... ok
[INFO] [stdout] test cli::insights::tests::test_infer_target_whitespace_trimming ... ok
[INFO] [stdout] test cli::insights::tests::test_insights_run_token ... ok
[INFO] [stdout] test cli::insights::tests::test_insights_run_token_with_concentration_warning ... ok
[INFO] [stdout] test cli::insights::tests::test_is_stablecoin ... ok
[INFO] [stdout] test cli::insights::tests::test_is_stablecoin_case_insensitive ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_address_contract_high_risk ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_address_contract_no_value ... ok
[INFO] [stdout] test cli::insights::tests::test_is_stablecoin_empty_string ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_address_default_takeaway ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_address_high_value_wallet ... ok
[INFO] [stdout] test cli::discover::tests::test_discover_profiles_table ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_address_minimal_value ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_address_no_risk_data ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_address_empty_synthesis ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_address_contract_high_value ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_address_eoa_moderate_value ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_address_single_token ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_address_synthesis_parts_joined ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_address_with_tokens_recommendation ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_token_concentration_risk ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_token_high_risk_additional ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_token_high_risk ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_address_high_risk ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_address_low_risk ... ok
[INFO] [stdout] test cli::crawl::tests::test_run_crawl_with_charts ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_address_wallet_low_risk ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_token_high_risk_empty_concerns_uses_multiple_factors ... ok
[INFO] [stdout] test cli::crawl::tests::test_run_crawl_table_no_charts ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_token_low_liquidity_low_risk ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_token_moderate_risk ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_token_low_risk ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_token_stablecoin_healthy_peg ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_token_mixed_signals_key_takeaway ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_token_stablecoin_no_peg_data ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_tx_successful_native_transfer ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_token_stablecoin_peg_healthy ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_token_stablecoin_peg_unhealthy ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_token_stablecoin_unhealthy_peg ... ok
[INFO] [stdout] test cli::insights::tests::test_run_address_with_chain_override ... ok
[INFO] [stdout] test cli::insights::tests::test_run_address_contract ... ok
[INFO] [stdout] test cli::insights::tests::test_run_address_eoa ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_tx_approval_contains_approval_in_match ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_tx_failed_additional ... ok
[INFO] [stdout] test cli::contract::tests::test_print_report_vulns ... ok
[INFO] [stdout] test cli::insights::tests::test_run_transaction ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_tx_failed ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_tx_failed_high_value ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_tx_high_value_native ... ok
[INFO] [stdout] test cli::crawl::tests::test_run_crawl_day7_period ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_tx_high_value_native_additional ... ok
[INFO] [stdout] test cli::crawl::tests::test_run_crawl_with_report ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_tx_erc20_approve ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_tx_high_value_contract_call ... ok
[INFO] [stdout] test cli::insights::tests::test_meta_analysis_tx_routine ... ok
[INFO] [stdout] test cli::insights::tests::test_target_type_label_token ... ok
[INFO] [stdout] test cli::insights::tests::test_run_transaction_failed ... ok
[INFO] [stdout] test cli::insights::tests::test_target_type_label_transaction ... ok
[INFO] [stdout] test cli::insights::tests::test_target_type_label_address ... ok
[INFO] [stdout] test cli::interactive::tests::test_address_auto_detects_solana ... ok
[INFO] [stdout] test cli::interactive::tests::test_addr_alias ... ok
[INFO] [stdout] test cli::insights::tests::test_target_type_label_combined ... ok
[INFO] [stdout] test cli::interactive::tests::test_address_command_with_args ... ok
[INFO] [stdout] test cli::interactive::tests::test_address_book_empty_subcommand ... ok
[INFO] [stdout] test cli::interactive::tests::test_address_command_with_chain_override ... ok
[INFO] [stdout] test cli::interactive::tests::test_address_no_arg_no_last ... ok
[INFO] [stdout] test cli::interactive::tests::test_address_command_with_txs_flag ... ok
[INFO] [stdout] test cli::interactive::tests::test_address_reuses_last_address ... ok
[INFO] [stdout] test cli::interactive::tests::test_address_command_with_tokens_flag ... ok
[INFO] [stdout] test cli::interactive::tests::test_address_book_add_insufficient_args ... ok
[INFO] [stdout] test cli::interactive::tests::test_address_book_remove_insufficient_args ... ok
[INFO] [stdout] test cli::interactive::tests::test_address_book_list_command ... ok
[INFO] [stdout] test cli::interactive::tests::test_address_book_underscore_list ... ok
[INFO] [stdout] test cli::interactive::tests::test_all_valid_chains ... ok
[INFO] [stdout] test cli::interactive::tests::test_chain_auto ... ok
[INFO] [stdout] test cli::interactive::tests::test_chain_invalid ... ok
[INFO] [stdout] test cli::interactive::tests::test_chain_set_valid ... ok
[INFO] [stdout] test cli::interactive::tests::test_address_with_explicit_chain ... ok
[INFO] [stdout] test cli::interactive::tests::test_chain_show ... ok
[INFO] [stdout] test cli::interactive::tests::test_chain_set_solana ... ok
[INFO] [stdout] test cli::interactive::tests::test_clear_command ... ok
[INFO] [stdout] test cli::interactive::tests::test_chain_show_explicit ... ok
[INFO] [stdout] test cli::interactive::tests::test_contract_no_args ... ok
[INFO] [stdout] test cli::interactive::tests::test_context_alias ... ok
[INFO] [stdout] test cli::interactive::tests::test_contract_with_chain_and_json ... ok
[INFO] [stdout] test cli::interactive::tests::test_context_command ... ok
[INFO] [stdout] test cli::interactive::tests::test_contract_ct_alias_with_args ... ok
[INFO] [stdout] test cli::interactive::tests::test_aliases_command ... ok
[INFO] [stdout] test cli::interactive::tests::test_crawl_no_arg ... ok
[INFO] [stdout] test cli::interactive::tests::test_crawl_with_no_charts_flag ... ok
[INFO] [stdout] test cli::interactive::tests::test_crawl_with_chain_eq_flag ... ok
[INFO] [stdout] test cli::interactive::tests::test_dot_clear_alias ... ok
[INFO] [stdout] test cli::interactive::tests::test_crawl_with_period_space_flag ... ok
[INFO] [stdout] test cli::interactive::tests::test_crawl_with_explicit_chain ... ok
[INFO] [stdout] test cli::interactive::tests::test_dot_prefix_commands ... ok
[INFO] [stdout] test cli::interactive::tests::test_dot_context_alias ... ok
[INFO] [stdout] test cli::interactive::tests::test_dot_reset_alias ... ok
[INFO] [stdout] test cli::interactive::tests::test_dot_txs_alias ... ok
[INFO] [stdout] test cli::interactive::tests::test_crawl_with_chain_space_flag ... ok
[INFO] [stdout] test cli::interactive::tests::test_execute_tokens_add_insufficient_args ... ok
[INFO] [stdout] test cli::interactive::tests::test_empty_input ... ok
[INFO] [stdout] test cli::interactive::tests::test_crawl_with_report_flag ... ok
[INFO] [stdout] test cli::interactive::tests::test_execute_tokens_remove_no_args ... ok
[INFO] [stdout] test cli::interactive::tests::test_crawl_with_period_eq_flag ... ok
[INFO] [stdout] test cli::interactive::tests::test_execute_tokens_unknown_subcommand ... ok
[INFO] [stdout] test cli::interactive::tests::test_execute_tokens_ls_alias ... ok
[INFO] [stdout] test cli::interactive::tests::test_format_invalid ... ok
[INFO] [stdout] test cli::interactive::tests::test_format_set_csv ... ok
[INFO] [stdout] test cli::interactive::tests::test_exit_commands ... ok
[INFO] [stdout] test cli::interactive::tests::test_format_set_table ... ok
[INFO] [stdout] test cli::interactive::tests::test_format_set_json ... ok
[INFO] [stdout] test cli::interactive::tests::test_format_show ... ok
[INFO] [stdout] test cli::interactive::tests::test_execute_tokens_recent ... ok
[INFO] [stdout] test cli::interactive::tests::test_execute_tokens_list_subcommand ... ok
[INFO] [stdout] test cli::interactive::tests::test_format_show_when_csv ... ok
[INFO] [stdout] test cli::interactive::tests::test_interactive_args_default ... ok
[INFO] [stdout] test cli::interactive::tests::test_help_alias_question_mark ... ok
[INFO] [stdout] test cli::interactive::tests::test_limit_set_valid ... ok
[INFO] [stdout] test cli::interactive::tests::test_mon_alias ... ignored, monitor starts TUI and blocks until exit
[INFO] [stdout] test cli::interactive::tests::test_monitor_command_no_token ... ignored, monitor starts TUI and blocks until exit
[INFO] [stdout] test cli::interactive::tests::test_execute_tokens_list_empty ... ok
[INFO] [stdout] test cli::interactive::tests::test_limit_show ... ok
[INFO] [stdout] test cli::interactive::tests::test_help_command ... ok
[INFO] [stdout] test cli::interactive::tests::test_multiple_context_commands ... ok
[INFO] [stdout] test cli::interactive::tests::test_limit_set_invalid ... ok
[INFO] [stdout] test cli::interactive::tests::test_port_alias_for_portfolio ... ok
[INFO] [stdout] test cli::interactive::tests::test_portfolio_list_command ... ok
[INFO] [stdout] test cli::interactive::tests::test_portfolio_add_command ... ok
[INFO] [stdout] test cli::interactive::tests::test_portfolio_remove_command ... ok
[INFO] [stdout] test cli::interactive::tests::test_portfolio_no_subcommand ... ok
[INFO] [stdout] test cli::interactive::tests::test_portfolio_remove_no_args ... ok
[INFO] [stdout] test cli::interactive::tests::test_print_help_no_panic ... ok
[INFO] [stdout] test cli::interactive::tests::test_portfolio_add_with_label_and_tags ... ok
[INFO] [stdout] test cli::interactive::tests::test_portfolio_summary_with_chain_and_tag ... ok
[INFO] [stdout] test cli::interactive::tests::test_portfolio_unknown_subcommand ... ok
[INFO] [stdout] test cli::interactive::tests::test_portfolio_summary_command ... ok
[INFO] [stdout] test cli::interactive::tests::test_session_context_default ... ok
[INFO] [stdout] test cli::interactive::tests::test_session_context_display ... ok
[INFO] [stdout] test cli::interactive::tests::test_reset_alias ... ok
[INFO] [stdout] test cli::interactive::tests::test_session_context_display_auto_chain ... ok
[INFO] [stdout] test cli::interactive::tests::test_session_context_is_auto_chain ... ok
[INFO] [stdout] test cli::interactive::tests::test_session_context_serialization ... ok
[INFO] [stdout] test cli::interactive::tests::test_session_context_serialization_roundtrip ... ok
[INFO] [stdout] test cli::interactive::tests::test_setup_with_key_flag ... ignored, setup --key prompts for API key input on stdin
[INFO] [stdout] test cli::interactive::tests::test_session_context_display_with_address_and_tx ... ok
[INFO] [stdout] test cli::interactive::tests::test_showtxs_alias ... ok
[INFO] [stdout] test cli::interactive::tests::test_showtokens_alias ... ok
[INFO] [stdout] test cli::interactive::tests::test_toggle_decode ... ok
[INFO] [stdout] test cli::interactive::tests::test_toggle_tokens ... ok
[INFO] [stdout] test cli::interactive::tests::test_toggle_txs ... ok
[INFO] [stdout] test cli::interactive::tests::test_toggle_trace ... ok
[INFO] [stdout] test cli::interactive::tests::test_crawl_command_with_period_flag ... ok
[INFO] [stdout] test cli::interactive::tests::test_crawl_period_1h ... ok
[INFO] [stdout] test cli::interactive::tests::test_tokens_add_three_args_insufficient ... ok
[INFO] [stdout] test cli::interactive::tests::test_tokens_command_add_no_args ... ok
[INFO] [stdout] test cli::interactive::tests::test_tokens_command_list ... ok
[INFO] [stdout] test cli::interactive::tests::test_crawl_command_with_report ... ok
[INFO] [stdout] test cli::interactive::tests::test_crawl_period_30d ... ok
[INFO] [stdout] test cli::interactive::tests::test_tokens_command_remove_no_args ... ok
[INFO] [stdout] test cli::interactive::tests::test_tokens_command_unknown ... ok
[INFO] [stdout] test cli::interactive::tests::test_tokens_command_no_args ... ok
[INFO] [stdout] test cli::interactive::tests::test_execute_tokens_remove_with_symbol ... ok
[INFO] [stdout] test cli::interactive::tests::test_session_context_save_and_load ... ok
[INFO] [stdout] test cli::interactive::tests::test_tokens_add_then_list_nonempty ... ok
[INFO] [stdout] test cli::interactive::tests::test_execute_tokens_add_success ... ok
[INFO] [stdout] test cli::interactive::tests::test_tokens_add_with_name ... ok
[INFO] [stdout] test cli::interactive::tests::test_tokens_remove_with_chain ... ok
[INFO] [stdout] test cli::interactive::tests::test_tx_no_arg_no_last ... ok
[INFO] [stdout] test cli::interactive::tests::test_crawl_command_with_chain_flag ... ok
[INFO] [stdout] test cli::interactive::tests::test_tx_with_explicit_chain ... ok
[INFO] [stdout] test cli::interactive::tests::test_tokens_command_recent ... ok
[INFO] [stdout] test cli::interactive::tests::test_txs_alias ... ok
[INFO] [stdout] test cli::interactive::tests::test_unknown_command ... ok
[INFO] [stdout] test cli::market::tests::test_base_symbol_from_pair_4char_usdt ... ok
[INFO] [stdout] test cli::market::tests::test_base_symbol_from_pair_concat ... ok
[INFO] [stdout] test cli::market::tests::test_base_symbol_from_pair_lowercase_underscore ... ok
[INFO] [stdout] test cli::market::tests::test_base_symbol_from_pair_slash ... ok
[INFO] [stdout] test cli::market::tests::test_base_symbol_from_pair_underscore ... ok
[INFO] [stdout] test cli::market::tests::test_base_symbol_from_pair_various_inputs ... ok
[INFO] [stdout] test cli::market::tests::test_base_symbol_from_pair_whitespace ... ok
[INFO] [stdout] test cli::interactive::tests::test_tokens_ls_alias ... ok
[INFO] [stdout] test cli::market::tests::test_base_symbol_from_pair_plain ... ok
[INFO] [stdout] test cli::interactive::tests::test_crawl_invalid_period_defaults ... ok
[INFO] [stdout] test cli::market::tests::test_default_constants ... ok
[INFO] [stdout] test cli::market::tests::test_dex_venue_to_chain ... ok
[INFO] [stdout] test cli::market::tests::test_is_dex_venue ... ok
[INFO] [stdout] test cli::market::tests::test_market_commands_debug ... ok
[INFO] [stdout] test cli::market::tests::test_market_summary_to_markdown_basic ... ok
[INFO] [stdout] test cli::market::tests::test_dex_venue_to_chain_unknown_returns_ethereum ... ok
[INFO] [stdout] test cli::market::tests::test_market_summary_to_markdown_empty_checks ... ok
[INFO] [stdout] test cli::market::tests::test_market_summary_to_markdown_no_prices ... ok
[INFO] [stdout] test cli::market::tests::test_market_summary_to_markdown_mixed_pass_fail_checks ... ok
[INFO] [stdout] test cli::market::tests::test_market_summary_to_markdown_unhealthy ... ok
[INFO] [stdout] test cli::market::tests::test_ohlc_args_default_values ... ok
[INFO] [stdout] test cli::market::tests::test_normalize_pair_input_key_value ... ok
[INFO] [stdout] test cli::market::tests::test_market_summary_to_markdown_with_execution_estimates ... ok
[INFO] [stdout] test cli::market::tests::test_ohlc_args_deserialization ... ok
[INFO] [stdout] test cli::market::tests::test_ohlc_format_default ... ok
[INFO] [stdout] test cli::market::tests::test_ohlc_format_display ... ok
[INFO] [stdout] test cli::market::tests::test_ohlc_format_eq ... ok
[INFO] [stdout] test cli::market::tests::test_parse_duration_hours ... ok
[INFO] [stdout] test cli::market::tests::test_parse_duration_fractional ... ok
[INFO] [stdout] test cli::market::tests::test_parse_duration_hr_hrs_hour_hours ... ok
[INFO] [stdout] test cli::market::tests::test_ohlc_format_partial_eq ... ok
[INFO] [stdout] test cli::market::tests::test_parse_duration_days ... ok
[INFO] [stdout] test cli::market::tests::test_parse_duration_invalid ... ok
[INFO] [stdout] test cli::interactive::tests::test_crawl_command_with_period ... ok
[INFO] [stdout] test cli::market::tests::test_parse_duration_invalid_number_error ... ok
[INFO] [stdout] test cli::market::tests::test_parse_duration_invalid_number_format ... ok
[INFO] [stdout] test cli::market::tests::test_parse_duration_minute_minutes ... ok
[INFO] [stdout] test cli::market::tests::test_parse_duration_non_positive ... ok
[INFO] [stdout] test cli::market::tests::test_parse_duration_number_only_defaults_to_seconds ... ok
[INFO] [stdout] test cli::market::tests::test_parse_duration_long_names ... ok
[INFO] [stdout] test cli::market::tests::test_parse_duration_minutes ... ok
[INFO] [stdout] test cli::market::tests::test_parse_duration_trimmed_input ... ok
[INFO] [stdout] test cli::market::tests::test_parse_duration_seconds ... ok
[INFO] [stdout] test cli::market::tests::test_parse_duration_unknown_unit_error_message ... ok
[INFO] [stdout] test cli::interactive::tests::test_crawl_command_with_args ... ok
[INFO] [stdout] test cli::interactive::tests::test_token_alias_for_crawl ... ok
[INFO] [stdout] test cli::market::tests::test_parse_duration_whitespace_empty ... ok
[INFO] [stdout] test cli::market::tests::test_parse_pair_components_concat_common_quote ... ok
[INFO] [stdout] test cli::market::tests::test_parse_pair_components_delimited ... ok
[INFO] [stdout] test cli::market::tests::test_parse_duration_sec_secs_second_seconds ... ok
[INFO] [stdout] test cli::market::tests::test_run_summary_interval_zero_error ... ok
[INFO] [stdout] test cli::market::tests::test_run_summary_json_format ... ok
[INFO] [stdout] test cli::market::tests::test_run_summary_json_format_with_mock ... ok
[INFO] [stdout] test cli::market::tests::test_run_summary_one_shot_with_report ... ok
[INFO] [stdout] test cli::market::tests::test_run_dispatches_ohlc ... ok
[INFO] [stdout] test cli::market::tests::test_run_ohlc_json_format_with_real_venue ... ok
[INFO] [stdout] test cli::market::tests::test_run_dispatches_trades ... ok
[INFO] [stdout] test cli::market::tests::test_run_summary_with_mock_orderbook ... ok
[INFO] [stdout] test cli::market::tests::test_run_ohlc_text_format_with_real_venue ... ok
[INFO] [stdout] test cli::interactive::tests::test_tx_command_with_chain_override ... ok
[INFO] [stdout] test cli::market::tests::test_summary_args_debug ... ok
[INFO] [stdout] test cli::market::tests::test_summary_args_with_report_csv_options ... ok
[INFO] [stdout] test cli::market::tests::test_run_ohlc_unknown_venue ... ok
[INFO] [stdout] test cli::market::tests::test_summary_format_clone_copy ... ok
[INFO] [stdout] test cli::market::tests::test_summary_format_debug ... ok
[INFO] [stdout] test cli::market::tests::test_summary_format_default ... ok
[INFO] [stdout] test cli::market::tests::test_run_with_summary_command ... ok
[INFO] [stdout] test cli::market::tests::test_trades_args_construction ... ok
[INFO] [stdout] test cli::market::tests::test_trades_args_default_venue ... ok
[INFO] [stdout] test cli::market::tests::test_trades_args_deserialization ... ok
[INFO] [stdout] test cli::interactive::tests::test_transaction_alias ... ok
[INFO] [stdout] test cli::monitor::tests::test_abbreviate_address_17_chars ... ok
[INFO] [stdout] test cli::monitor::tests::test_abbreviate_address_exactly_16_chars ... ok
[INFO] [stdout] test cli::market::tests::test_run_trades_unknown_venue ... ok
[INFO] [stdout] test cli::market::tests::test_run_trades_text_format_with_real_venue ... ok
[INFO] [stdout] test cli::monitor::tests::test_abbreviate_address_long ... ok
[INFO] [stdout] test cli::market::tests::test_run_trades_json_format_with_real_venue ... ok
[INFO] [stdout] test cli::monitor::tests::test_alert_config_serde_roundtrip ... ok
[INFO] [stdout] test cli::interactive::tests::test_tx_reuses_last_tx ... ok
[INFO] [stdout] test cli::monitor::tests::test_alert_clears_on_next_update ... ok
[INFO] [stdout] test cli::monitor::tests::test_alert_config_default ... ok
[INFO] [stdout] test cli::monitor::tests::test_alert_flash_timer_set ... ok
[INFO] [stdout] test cli::market::tests::test_venue_registry_error_for_unknown ... ok
[INFO] [stdout] test cli::interactive::tests::test_tx_auto_detects_tron ... ok
[INFO] [stdout] test cli::monitor::tests::test_abbreviate_address_short ... ok
[INFO] [stdout] test cli::monitor::tests::test_alert_multiple_simultaneous ... ok
[INFO] [stdout] test cli::monitor::tests::test_alert_whale_zero_transactions ... ok
[INFO] [stdout] test cli::monitor::tests::test_alert_volume_spike_triggers ... ok
[INFO] [stdout] test cli::monitor::tests::test_alert_price_max_triggers ... ok
[INFO] [stdout] test cli::monitor::tests::test_alert_no_trigger_within_bounds ... ok
[INFO] [stdout] test cli::monitor::tests::test_alert_price_min_triggers ... ok
[INFO] [stdout] test cli::market::tests::test_venue_registry_loaded_in_cex_path ... ok
[INFO] [stdout] test cli::monitor::tests::test_app_fetch_data_holder_count_zero_not_stored ... ok
[INFO] [stdout] test cli::monitor::tests::test_app_fetch_data_success ... ok
[INFO] [stdout] test cli::monitor::tests::test_app_fetch_data_error_then_recovery ... ok
[INFO] [stdout] test cli::market::tests::test_run_ohlc_multiple_venues ... ok
[INFO] [stdout] test cli::monitor::tests::test_app_cleanup_does_not_panic_test_backend ... ok
[INFO] [stdout] test cli::monitor::tests::test_app_fetch_data_api_error ... ok
[INFO] [stdout] test cli::monitor::tests::test_app_fetch_data_no_chain_client_skips_holders ... ok
[INFO] [stdout] test cli::monitor::tests::test_app_fetch_data_holder_count_on_12th_tick ... ok
[INFO] [stdout] test cli::monitor::tests::test_app_fetch_data_preserves_holder_on_subsequent_failure ... ok
[INFO] [stdout] test cli::monitor::tests::test_app_handle_key_updates_last_input_time ... ok
[INFO] [stdout] test cli::monitor::tests::test_app_handle_key_all_keybindings ... ok
[INFO] [stdout] test cli::monitor::tests::test_app_handle_key_ctrl_c_stops_active_export ... ok
[INFO] [stdout] test cli::monitor::tests::test_app_handle_key_quit_esc ... ok
[INFO] [stdout] test cli::monitor::tests::test_app_handle_key_quit_q ... ok
[INFO] [stdout] test cli::monitor::tests::test_app_handle_key_quit_stops_active_export ... ok
[INFO] [stdout] test cli::monitor::tests::test_app_handle_key_widget_toggle_mode ... ok
[INFO] [stdout] test cli::interactive::tests::test_setup_with_key_short_flag ... ok
[INFO] [stdout] test cli::monitor::tests::test_auto_pause_blocks_refresh ... ok
[INFO] [stdout] test cli::monitor::tests::test_app_handle_key_quit_ctrl_c ... ok
[INFO] [stdout] test cli::monitor::tests::test_app_handle_key_widget_toggle_mode_cancel ... ok
[INFO] [stdout] test cli::monitor::tests::test_auto_pause_default_disabled ... ok
[INFO] [stdout] test cli::monitor::tests::test_auto_select_layout_edge_23_height ... ok
[INFO] [stdout] test cli::monitor::tests::test_auto_select_layout_narrow_terminal ... ok
[INFO] [stdout] test cli::monitor::tests::test_auto_select_layout_edge_80x24 ... ok
[INFO] [stdout] test cli::monitor::tests::test_auto_select_layout_edge_79 ... ok
[INFO] [stdout] test cli::monitor::tests::test_auto_select_layout_short_terminal ... ok
[INFO] [stdout] test cli::monitor::tests::test_auto_pause_allows_refresh_after_timeout ... ok
[INFO] [stdout] test cli::monitor::tests::test_auto_select_layout_small_terminal ... ok
[INFO] [stdout] test cli::monitor::tests::test_build_exchange_token_data_address_format ... ok
[INFO] [stdout] test cli::monitor::tests::test_build_exchange_token_data_from_ticker ... ok
[INFO] [stdout] test cli::monitor::tests::test_build_exchange_token_data_extracts_base_symbol ... ok
[INFO] [stdout] test cli::monitor::tests::test_build_exchange_token_data_missing_price ... ok
[INFO] [stdout] test cli::monitor::tests::test_buy_ratio_balanced ... ok
[INFO] [stdout] test cli::monitor::tests::test_chain_filter_logic_bsc ... ok
[INFO] [stdout] test cli::monitor::tests::test_chain_filter_logic_ethereum_default ... ok
[INFO] [stdout] test cli::monitor::tests::test_buy_ratio_no_trades ... ok
[INFO] [stdout] test cli::monitor::tests::test_auto_pause_custom_timeout ... ok
[INFO] [stdout] test cli::monitor::tests::test_cache_save_and_load ... ok
[INFO] [stdout] test cli::monitor::tests::test_auto_pause_disabled_does_not_block ... ok
[INFO] [stdout] test cli::monitor::tests::test_auto_select_layout_large_terminal ... ok
[INFO] [stdout] test cli::monitor::tests::test_chart_mode_cycle ... ok
[INFO] [stdout] test cli::monitor::tests::test_chart_mode_label ... ok
[INFO] [stdout] test cli::monitor::tests::test_chain_filter_logic_explicit_chain ... ok
[INFO] [stdout] test cli::monitor::tests::test_color_scheme_label ... ok
[INFO] [stdout] test cli::monitor::tests::test_cache_roundtrip_save_load ... ok
[INFO] [stdout] test cli::monitor::tests::test_color_palette_fields_populated ... ok
[INFO] [stdout] test cli::monitor::tests::test_color_scheme_serde_kebab_case ... ok
[INFO] [stdout] test cli::monitor::tests::test_chart_mode_volume_profile_label ... ok
[INFO] [stdout] test cli::monitor::tests::test_color_scheme_serde_roundtrip ... ok
[INFO] [stdout] test cli::monitor::tests::test_color_scheme_cycle ... ok
[INFO] [stdout] test cli::monitor::tests::test_data_point_serde_roundtrip ... ok
[INFO] [stdout] test cli::monitor::tests::test_export_config_default ... ok
[INFO] [stdout] test cli::monitor::tests::test_data_stats_initial ... ok
[INFO] [stdout] test cli::monitor::tests::test_exchange_interval_mapping ... ok
[INFO] [stdout] test cli::monitor::tests::test_cycle_all_time_periods ... ok
[INFO] [stdout] test cli::monitor::tests::test_export_toggle ... ok
[INFO] [stdout] test cli::monitor::tests::test_export_config_serde_roundtrip ... ok
[INFO] [stdout] test cli::monitor::tests::test_config_auto_pause_applied ... ok
[INFO] [stdout] test cli::monitor::tests::test_export_writes_csv_row_content_format ... ok
[INFO] [stdout] test cli::monitor::tests::test_export_start_creates_file ... ok
[INFO] [stdout] test cli::monitor::tests::test_export_writes_csv_rows ... ok
[INFO] [stdout] test cli::monitor::tests::test_export_writes_csv_row_market_cap_none ... ok
[INFO] [stdout] test cli::monitor::tests::test_format_monitor_number_millions ... ok
[INFO] [stdout] test cli::monitor::tests::test_format_monitor_number_billions ... ok
[INFO] [stdout] test cli::monitor::tests::test_format_monitor_number ... ok
[INFO] [stdout] test cli::monitor::tests::test_format_monitor_number_small ... ok
[INFO] [stdout] test cli::monitor::tests::test_faster_refresh_clamped_min ... ok
[INFO] [stdout] test cli::monitor::tests::test_force_refresh_unpauses ... ok
[INFO] [stdout] test cli::monitor::tests::test_format_monitor_number_thousands ... ok
[INFO] [stdout] test cli::monitor::tests::test_format_number ... ok
[INFO] [stdout] test cli::monitor::tests::test_format_number_boundary_values ... ok
[INFO] [stdout] test cli::monitor::tests::test_format_price_usd_micro ... ok
[INFO] [stdout] test cli::monitor::tests::test_format_price_usd_nano ... ok
[INFO] [stdout] test cli::monitor::tests::test_export_stop ... ok
[INFO] [stdout] test cli::monitor::tests::test_format_price_usd_stablecoin ... ok
[INFO] [stdout] test cli::monitor::tests::test_format_number_various ... ok
[INFO] [stdout] test cli::monitor::tests::test_format_price_usd_high ... ok
[INFO] [stdout] test cli::monitor::tests::test_format_price_usd_medium ... ok
[INFO] [stdout] test cli::monitor::tests::test_format_price_usd_small ... ok
[INFO] [stdout] test cli::monitor::tests::test_format_price_usd_various ... ok
[INFO] [stdout] test cli::monitor::tests::test_format_usd_various ... ok
[INFO] [stdout] test cli::monitor::tests::test_format_usd ... ok
[INFO] [stdout] test cli::monitor::tests::test_generate_synthetic_order_book ... ok
[INFO] [stdout] test cli::monitor::tests::test_generate_synthetic_order_book_empty_pairs ... ok
[INFO] [stdout] test cli::monitor::tests::test_generate_synthetic_order_book_high_liquidity ... ok
[INFO] [stdout] test cli::monitor::tests::test_generate_synthetic_order_book_zero_liquidity ... ok
[INFO] [stdout] test cli::monitor::tests::test_generate_synthetic_order_book_with_pairs ... ok
[INFO] [stdout] test cli::monitor::tests::test_generate_synthetic_order_book_zero_mid_price ... ok
[INFO] [stdout] test cli::monitor::tests::test_generate_synthetic_price_history_zero_price ... ok
[INFO] [stdout] test cli::monitor::tests::test_generate_synthetic_order_book_zero_price ... ok
[INFO] [stdout] test cli::monitor::tests::test_cache_path_generation ... ok
[INFO] [stdout] test cli::monitor::tests::test_generate_synthetic_volume_history_zero_volume ... ok
[INFO] [stdout] test cli::interactive::tests::test_tx_command_with_args ... ok
[INFO] [stdout] test cli::monitor::tests::test_get_data_for_period_returns_flags ... ok
[INFO] [stdout] test cli::monitor::tests::test_get_ohlc_candles_prefers_exchange_data ... ok
[INFO] [stdout] test cli::monitor::tests::test_handle_key_color_scheme_cycle_slash ... ok
[INFO] [stdout] test cli::monitor::tests::test_handle_key_cycle_time_period ... ok
[INFO] [stdout] test cli::monitor::tests::test_handle_key_event_escape ... ok
[INFO] [stdout] test cli::monitor::tests::test_get_ohlc_candles_returns_exchange_ohlc_when_populated ... ok
[INFO] [stdout] test cli::monitor::tests::test_handle_key_event_chart_cycle ... ok
[INFO] [stdout] test cli::monitor::tests::test_handle_key_event_quit ... ok
[INFO] [stdout] test cli::monitor::tests::test_handle_key_event_slower_faster ... ok
[INFO] [stdout] test cli::monitor::tests::test_handle_key_event_time_period ... ok
[INFO] [stdout] test cli::monitor::tests::test_handle_key_event_pause ... ok
[INFO] [stdout] test cli::monitor::tests::test_get_ohlc_candles ... ok
[INFO] [stdout] test cli::monitor::tests::test_handle_key_faster_refresh ... ok
[INFO] [stdout] test cli::monitor::tests::test_handle_key_quit_esc ... ok
[INFO] [stdout] test cli::monitor::tests::test_handle_key_refresh ... ok
[INFO] [stdout] test cli::monitor::tests::test_handle_key_quit_q ... ok
[INFO] [stdout] test cli::monitor::tests::test_handle_key_pause_toggle ... ok
[INFO] [stdout] test cli::monitor::tests::test_handle_key_scroll_log_j_k ... ok
[INFO] [stdout] test cli::monitor::tests::test_is_auto_paused ... ok
[INFO] [stdout] test cli::monitor::tests::test_is_stablecoin_price ... ok
[INFO] [stdout] test cli::monitor::tests::test_handle_key_slower_refresh ... ok
[INFO] [stdout] test cli::monitor::tests::test_handle_key_scale_toggle_s ... ok
[INFO] [stdout] test cli::monitor::tests::test_handle_key_time_periods ... ok
[INFO] [stdout] test cli::monitor::tests::test_handle_key_toggle_chart_mode ... ok
[INFO] [stdout] test cli::monitor::tests::test_handle_key_unknown_no_op ... ok
[INFO] [stdout] test cli::monitor::tests::test_handle_key_quit_ctrl_c ... ok
[INFO] [stdout] test cli::monitor::tests::test_handle_key_scroll_log_arrow_keys ... ok
[INFO] [stdout] test cli::monitor::tests::test_keybinding_e_toggles_export ... ok
[INFO] [stdout] test cli::monitor::tests::test_keybinding_h_cycles_layout_backward ... ok
[INFO] [stdout] test cli::monitor::tests::test_keybinding_l_cycles_layout_forward ... ok
[INFO] [stdout] test cli::monitor::tests::test_keybinding_updates_last_input_at ... ok
[INFO] [stdout] test cli::monitor::tests::test_keybinding_a_enables_auto_layout ... ok
[INFO] [stdout] test cli::monitor::tests::test_keybinding_shift_p_toggles_auto_pause ... ok
[INFO] [stdout] test cli::monitor::tests::test_keybinding_w_cancel_with_non_digit ... ok
[INFO] [stdout] test cli::monitor::tests::test_keybinding_w_toggle_multiple_widgets ... ok
[INFO] [stdout] test cli::monitor::tests::test_keybinding_w_widget_toggle_mode ... ok
[INFO] [stdout] test cli::monitor::tests::test_layout_compact_metrics_only ... ok
[INFO] [stdout] test cli::monitor::tests::test_layout_preset_full_cycle ... ok
[INFO] [stdout] test cli::monitor::tests::test_layout_chart_focus_minimal_overlay ... ok
[INFO] [stdout] test cli::monitor::tests::test_layout_all_widgets_hidden_dashboard ... ok
[INFO] [stdout] test cli::monitor::tests::test_layout_preset_labels ... ok
[INFO] [stdout] test cli::monitor::tests::test_layout_preset_next_cycles ... ok
[INFO] [stdout] test cli::monitor::tests::test_layout_feed_activity_priority ... ok
[INFO] [stdout] test cli::monitor::tests::test_layout_preset_prev_cycles ... ok
[INFO] [stdout] test cli::monitor::tests::test_liquidity_pairs_extracted_on_update ... ok
[INFO] [stdout] test cli::monitor::tests::test_layout_preset_serde_roundtrip ... ok
[INFO] [stdout] test cli::monitor::tests::test_load_cache_corrupted_json ... ok
[INFO] [stdout] test cli::monitor::tests::test_load_cache_nonexistent_token ... ok
[INFO] [stdout] test cli::monitor::tests::test_memory_usage ... ok
[INFO] [stdout] test cli::monitor::tests::test_memory_usage_nonzero ... ok
[INFO] [stdout] test cli::monitor::tests::test_log_messages_accumulate ... ok
[INFO] [stdout] test cli::monitor::tests::test_log_message_queue_overflow ... ok
[INFO] [stdout] test cli::monitor::tests::test_load_cache_wrong_token ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_args_pair_none_by_default ... ok
[INFO] [stdout] test cli::monitor::tests::test_layout_exchange_has_order_book_and_market_info ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_args_pair_requires_venue_conceptually ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_args_with_venue ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_config_defaults ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_args_with_pair ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_config_serde_defaults_for_new_fields ... ok
[INFO] [stdout] test cli::monitor::tests::test_layout_preset_serde_kebab_case ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_config_serde_kebab_case ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_state_buy_ratio_zero ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_config_full_serde_roundtrip ... ok
[INFO] [stdout] test cli::market::tests::test_run_trades_multiple_venues ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_state_buy_ratio ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_state_exchange_ohlc_default_empty ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_state_has_holder_count_field ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_state_new_has_alert_export_autopause_fields ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_state_new_has_layout_fields ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_state_new ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_state_refresh_rate_adjustment ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_config_serde_roundtrip ... ok
[INFO] [stdout] test cli::interactive::tests::test_tx_command_with_trace_decode ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_state_update_dex_pairs_and_order_book ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_config_serde_default_missing_fields ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_state_update_generates_trades ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_state_update_price_unchanged ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_state_update_sells_more_than_buys ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_args_defaults ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_state_update_liquidity_pairs ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_state_should_refresh ... ok
[INFO] [stdout] test cli::monitor::tests::test_ohlc_candle_lifecycle ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_args_all_flags ... ok
[INFO] [stdout] test cli::monitor::tests::test_ohlc_candle_new ... ok
[INFO] [stdout] test cli::monitor::tests::test_ohlc_candle_is_bullish_calculation ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_state_time_period ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_state_update_zero_volume ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_state_update_with_token_data ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_state_update ... ok
[INFO] [stdout] test cli::monitor::tests::test_ohlc_candles_generation ... ok
[INFO] [stdout] test cli::monitor::tests::test_pause_resume_roundtrip ... ok
[INFO] [stdout] test cli::monitor::tests::test_quit_stops_export ... ok
[INFO] [stdout] test cli::monitor::tests::test_real_data_marking ... ok
[INFO] [stdout] test cli::monitor::tests::test_refresh_rate_adjust ... ok
[INFO] [stdout] test cli::monitor::tests::test_layout_dashboard_all_visible ... ok
[INFO] [stdout] test cli::monitor::tests::test_price_data_for_period ... ok
[INFO] [stdout] test cli::monitor::tests::test_layout_dashboard_hidden_widget ... ok
[INFO] [stdout] test cli::monitor::tests::test_monitor_state_toggle_pause ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_alert_overlay_empty ... ok
[INFO] [stdout] test cli::monitor::tests::test_ohlc_candle_update ... ok
[INFO] [stdout] test cli::monitor::tests::test_ohlc_candle_update_bearish ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_alert_overlay_no_panic ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_alert_overlay_flash_expired ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_activity_feed_no_panic ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_activity_feed_empty_log ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_activity_feed_with_selection ... ok
[INFO] [stdout] test cli::monitor::tests::test_app_draw_renders_ui ... ok
[INFO] [stdout] test cli::interactive::tests::test_config_alias ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_buy_sell_gauge_zero_total ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_buy_sell_gauge_high_buy_ratio ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_buy_sell_gauge_balanced ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_buy_sell_gauge_tiny_area ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_candlestick_chart_log_scale ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_candlestick_chart_empty ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_candlestick_empty_fresh_state ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_alert_overlay_multiple_alerts ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_buy_sell_gauge_no_panic ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_candlestick_chart_no_panic ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_footer_with_error ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_footer_auto_paused ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_candlestick_mode ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_footer_all_status_indicators ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_header_large_negative_change ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_liquidity_depth_empty ... ok
[INFO] [stdout] test cli::monitor::tests::test_app_full_scenario_fetch_render_quit ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_footer_paused ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_header_large_positive_change ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_liquidity_depth_narrow_terminal ... ok
[INFO] [stdout] test cli::interactive::tests::test_setup_command_status ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_footer_with_export_active ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_candlestick_price_down ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_header_with_small_positive_change ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_header_with_small_negative_change ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_liquidity_depth_no_panic ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_all_components ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_header_no_panic ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_header_with_negative_change ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_footer_no_panic ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_market_info_panel_no_panic ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_footer_widget_toggle_mode_active ... ok
[INFO] [stdout] test cli::monitor::tests::test_layout_exchange_ui_full_render ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_metrics_panel_negative_5m_change ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_liquidity_depth_many_pairs ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_metrics_panel_holder_count_disabled ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_metrics_panel_sparkline_single_point ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_metrics_panel_no_panic ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_metrics_panel_no_market_cap ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_metrics_panel_negative_24h_change ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_order_book_panel_no_data ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_metrics_panel_old_last_change ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_order_book_panel_narrow_height ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_metrics_panel_positive_5m_change ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_metrics_panel_zero_5m_change ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_metrics_table_sparkline_no_panic ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_price_chart_empty_data ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_metrics_with_stablecoin ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_order_book_panel_with_data ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_metrics_with_large_values ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_metrics_panel_minutes_ago_change ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_price_chart_zero_first_price ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_metrics_with_holder_count ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_market_info_panel_with_dex_pairs ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_recent_trades_panel_high_price_trade ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_recent_trades_panel_empty ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_metrics_with_market_cap ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_price_chart_line_mode ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_price_chart_log_scale_zero_price ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_price_chart_price_down ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_volume_barchart_narrow_terminal ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_price_chart_log_scale ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_recent_trades_panel_with_trades ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_metrics_sparkline_trend_direction ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_volume_profile_chart_narrow_terminal ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_volume_profile_chart_empty_data ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_volume_chart_empty ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_volume_chart_with_many_points ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_price_chart_no_panic ... ok
[INFO] [stdout] test cli::monitor::tests::test_resolve_token_address_solana_address ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_price_chart_stablecoin_flat_range ... ok
[INFO] [stdout] test cli::monitor::tests::test_run_direct_config_no_overrides_preserves_defaults ... ok
[INFO] [stdout] test cli::monitor::tests::test_run_direct_config_override_all_fields ... ok
[INFO] [stdout] test cli::monitor::tests::test_run_direct_config_override_layout ... ok
[INFO] [stdout] test cli::monitor::tests::test_run_direct_config_pair_passthrough ... ok
[INFO] [stdout] test cli::monitor::tests::test_resolve_token_address_with_address_input ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_volume_chart_all_color_schemes ... ok
[INFO] [stdout] test cli::monitor::tests::test_save_and_load_cache ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_volume_profile_chart_no_panic ... ok
[INFO] [stdout] test cli::monitor::tests::test_scale_mode_label ... ok
[INFO] [stdout] test cli::monitor::tests::test_scale_mode_serde_kebab_case ... ok
[INFO] [stdout] test cli::monitor::tests::test_scale_mode_serde_roundtrip ... ok
[INFO] [stdout] test cli::monitor::tests::test_scroll_log_down_from_start ... ok
[INFO] [stdout] test cli::monitor::tests::test_scroll_log_up_down_roundtrip ... ok
[INFO] [stdout] test cli::monitor::tests::test_scroll_log_up_from_start ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_volume_profile_chart_single_price ... ok
[INFO] [stdout] test cli::monitor::tests::test_select_token_impl_invalid_input ... ok
[INFO] [stdout] test cli::monitor::tests::test_select_token_impl_long_name_truncation ... ok
[INFO] [stdout] test cli::monitor::tests::test_select_token_impl_empty_input ... ok
[INFO] [stdout] test cli::monitor::tests::test_scale_mode_toggle ... ok
[INFO] [stdout] test cli::monitor::tests::test_select_token_impl_non_numeric_input ... ok
[INFO] [stdout] test cli::monitor::tests::test_select_token_impl_first ... ok
[INFO] [stdout] test cli::monitor::tests::test_select_token_impl_out_of_bounds_zero ... ok
[INFO] [stdout] test cli::monitor::tests::test_select_token_impl_out_of_range_zero ... ok
[INFO] [stdout] test cli::monitor::tests::test_scroll_log_empty_no_panic ... ok
[INFO] [stdout] test cli::monitor::tests::test_select_token_impl_out_of_range ... ok
[INFO] [stdout] test cli::monitor::tests::test_select_token_impl_out_of_bounds_high ... ok
[INFO] [stdout] test cli::monitor::tests::test_select_token_impl_second ... ok
[INFO] [stdout] test cli::monitor::tests::test_select_token_impl_second_of_two ... ok
[INFO] [stdout] test cli::monitor::tests::test_select_token_impl_out_of_range_high ... ok
[INFO] [stdout] test cli::monitor::tests::test_select_token_impl_output_format ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_volume_chart_no_panic ... ok
[INFO] [stdout] test cli::monitor::tests::test_select_token_impl_shows_address_column ... ok
[INFO] [stdout] test cli::monitor::tests::test_select_token_impl_single_result_pick ... ok
[INFO] [stdout] test cli::monitor::tests::test_select_token_impl_truncates_long_name ... ok
[INFO] [stdout] test cli::monitor::tests::test_select_token_impl_valid_first ... ok
[INFO] [stdout] test cli::monitor::tests::test_select_token_impl_valid_last ... ok
[INFO] [stdout] test cli::monitor::tests::test_should_refresh_when_paused ... ok
[INFO] [stdout] test cli::monitor::tests::test_set_specific_time_period ... ok
[INFO] [stdout] test cli::monitor::tests::test_select_token_impl_valid_middle ... ok
[INFO] [stdout] test cli::monitor::tests::test_time_period_display_impl ... ok
[INFO] [stdout] test cli::monitor::tests::test_time_period_exchange_interval ... ok
[INFO] [stdout] test cli::monitor::tests::test_state_apply_config ... ok
[INFO] [stdout] test cli::monitor::tests::test_time_period ... ok
[INFO] [stdout] test cli::monitor::tests::test_time_period_index ... ok
[INFO] [stdout] test cli::monitor::tests::test_state_update_with_new_data ... ok
[INFO] [stdout] test cli::monitor::tests::test_slower_refresh_clamped_max ... ok
[INFO] [stdout] test cli::monitor::tests::test_time_period_index_all ... ok
[INFO] [stdout] test cli::monitor::tests::test_try_cex_fallback_returns_correct_structure ... ok
[INFO] [stdout] test cli::monitor::tests::test_synthetic_history_generation ... ok
[INFO] [stdout] test cli::monitor::tests::test_toggle_chart_mode_roundtrip ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_scrollable_activity_log ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_tabs_time_period ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_metrics_table_sparkline_all_periods ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_with_hour6_period ... ok
[INFO] [stdout] test cli::monitor::tests::test_ui_render_compact_small_terminal ... ok
[INFO] [stdout] test cli::monitor::tests::test_ui_auto_layout_selects_compact_for_small ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_ui_with_scrolled_log ... ok
[INFO] [stdout] test cli::monitor::tests::test_ui_auto_layout_disabled_keeps_preset ... ok
[INFO] [stdout] test cli::monitor::tests::test_ui_function_with_error_message ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_with_min15_period ... ok
[INFO] [stdout] test cli::monitor::tests::test_ui_function_candlestick_mode ... ok
[INFO] [stdout] test cli::monitor::tests::test_volume_data_for_period ... ok
[INFO] [stdout] test cli::monitor::tests::test_widget_visibility_default_all_visible ... ok
[INFO] [stdout] test cli::monitor::tests::test_widget_visibility_toggle_by_index ... ok
[INFO] [stdout] test cli::monitor::tests::test_widget_visibility_serde_roundtrip ... ok
[INFO] [stdout] test cli::progress::tests::test_spinner_create_and_finish ... ok
[INFO] [stdout] test cli::progress::tests::test_spinner_finish_and_clear ... ok
[INFO] [stdout] test cli::monitor::tests::test_widget_visibility_toggle_invalid_index ... ok
[INFO] [stdout] test cli::progress::tests::test_spinner_finish_warn_multiple_calls ... ok
[INFO] [stdout] test cli::progress::tests::test_spinner_finish_warn ... ok
[INFO] [stdout] test cli::progress::tests::test_spinner_finish_warn_with_message ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_volume_barchart_with_populated_data ... ok
[INFO] [stdout] test cli::progress::tests::test_spinner_suspend ... ok
[INFO] [stdout] test cli::progress::tests::test_spinner_println ... ok
[INFO] [stdout] test cli::progress::tests::test_spinner_multiple_set_message ... ok
[INFO] [stdout] test cli::progress::tests::test_step_progress_create_and_finish ... ok
[INFO] [stdout] test cli::progress::tests::test_step_progress_multiple_inc ... ok
[INFO] [stdout] test cli::progress::tests::test_step_progress_large_total ... ok
[INFO] [stdout] test cli::progress::tests::test_step_progress_single_step ... ok
[INFO] [stdout] test cli::report::tests::test_batch_args_debug ... ok
[INFO] [stdout] test cli::report::tests::test_batch_args_with_risk ... ok
[INFO] [stdout] test cli::progress::tests::test_step_progress_zero_total ... ok
[INFO] [stdout] test cli::report::tests::test_batch_report_to_markdown_single_report ... ok
[INFO] [stdout] test cli::report::tests::test_batch_report_to_markdown_multiple_reports ... ok
[INFO] [stdout] test cli::report::tests::test_batch_report_to_markdown_with_risk_data ... ok
[INFO] [stdout] test cli::monitor::tests::test_ui_render_widget_toggle_mode_footer ... ok
[INFO] [stdout] test cli::report::tests::test_report_commands_debug ... ok
[INFO] [stdout] test cli::report::tests::test_resolve_targets_addresses_only ... ok
[INFO] [stdout] test cli::report::tests::test_batch_report_to_markdown_with_risk_placeholder ... ok
[INFO] [stdout] test cli::report::tests::test_resolve_targets_empty ... ok
[INFO] [stdout] test cli::report::tests::test_resolve_targets_file_not_found ... ok
[INFO] [stdout] test cli::report::tests::test_resolve_targets_multiple_addresses ... ok
[INFO] [stdout] test cli::report::tests::test_resolve_targets_from_file ... ok
[INFO] [stdout] test cli::report::tests::test_run_batch_empty_targets ... ok
[INFO] [stdout] test cli::report::tests::test_resolve_targets_non_default_chain ... ok
[INFO] [stdout] test cli::report::tests::test_batch_report_to_markdown_with_transactions_and_tokens ... ok
[INFO] [stdout] test cli::monitor::tests::test_ui_with_fresh_state_no_real_data ... ok
[INFO] [stdout] test cli::report::tests::test_run_batch_with_risk ... ok
[INFO] [stdout] test cli::setup::tests::test_configure_single_key_impl_bscscan ... ok
[INFO] [stdout] test cli::setup::tests::test_configure_single_key_impl_empty_skips ... ok
[INFO] [stdout] test cli::setup::tests::test_configure_single_key_impl_invalid_key_name ... ok
[INFO] [stdout] test cli::report::tests::test_run_dispatch ... ok
[INFO] [stdout] test cli::setup::tests::test_configure_single_key_impl_valid_key ... ok
[INFO] [stdout] test cli::setup::tests::test_get_api_key_info_unknown ... ok
[INFO] [stdout] test cli::setup::tests::test_get_api_key_info_all_providers ... ok
[INFO] [stdout] test cli::setup::tests::test_get_api_key_info_features_not_empty ... ok
[INFO] [stdout] test cli::setup::tests::test_get_api_key_info_urls_correct ... ok
[INFO] [stdout] test cli::setup::tests::test_get_api_key_items_default_config ... ok
[INFO] [stdout] test cli::setup::tests::test_get_api_key_items_with_set_key ... ok
[INFO] [stdout] test cli::setup::tests::test_get_api_key_items_all_set ... ok
[INFO] [stdout] test cli::setup::tests::test_get_api_key_url ... ok
[INFO] [stdout] test cli::setup::tests::test_mask_key_9_chars ... ok
[INFO] [stdout] test cli::setup::tests::test_mask_key_empty ... ok
[INFO] [stdout] test cli::setup::tests::test_mask_key_exactly_8 ... ok
[INFO] [stdout] test cli::setup::tests::test_mask_key_long ... ok
[INFO] [stdout] test cli::setup::tests::test_prompt_api_key_impl_empty_input ... ok
[INFO] [stdout] test cli::setup::tests::test_prompt_api_key_impl_with_input ... ok
[INFO] [stdout] test cli::setup::tests::test_prompt_optional_key_impl_skip ... ok
[INFO] [stdout] test cli::setup::tests::test_prompt_optional_key_impl_with_key ... ok
[INFO] [stdout] test cli::setup::tests::test_mask_key_short ... ok
[INFO] [stdout] test cli::report::tests::test_resolve_targets_from_file_with_chain_override ... ok
[INFO] [stdout] test cli::setup::tests::test_reset_config_impl_confirm_yes_full ... ok
[INFO] [stdout] Unknown API key: nonexistent
[INFO] [stdout] 
[INFO] [stdout] Valid options:
[INFO] [stdout]   etherscan       - Ethereum Mainnet
[INFO] [stdout]   bscscan         - BNB Smart Chain (BSC)
[INFO] [stdout]   polygonscan     - Polygon (MATIC)
[INFO] [stdout]   arbiscan        - Arbitrum One
[INFO] [stdout]   basescan        - Base (Coinbase L2)
[INFO] [stdout]   optimism        - Optimism (OP Mainnet)
[INFO] [stdout] test cli::setup::tests::test_reset_config_impl_confirm_yes ... ok
[INFO] [stdout] test cli::setup::tests::test_reset_config_impl_no_file ... ok
[INFO] [stdout] test cli::setup::tests::test_run_key_unknown ... ok
[INFO] [stdout] test cli::setup::tests::test_save_config_creates_file ... ok
[INFO] [stdout] test cli::setup::tests::test_save_config_includes_ghola_section ... ok
[INFO] [stdout] test cli::setup::tests::test_reset_config_impl_cancel ... ok
[INFO] [stdout] test cli::setup::tests::test_save_config_ghola_defaults ... ok
[INFO] [stdout] test cli::setup::tests::test_save_config_to_path_with_rpc ... ok
[INFO] [stdout] test cli::setup::tests::test_save_config_to_path_creates_file_and_dirs ... ok
[INFO] [stdout] test cli::setup::tests::test_setup_args_defaults ... ok
[INFO] [stdout] test cli::monitor::tests::test_ui_render_with_liquidity_data ... ok
[INFO] [stdout] test cli::setup::tests::test_setup_args_reset ... ok
[INFO] [stdout] test cli::setup::tests::test_setup_args_reset_flag ... ok
[INFO] [stdout] test cli::setup::tests::test_setup_args_status ... ok
[INFO] [stdout] test cli::report::tests::test_run_batch_with_mock_factory ... ok
[INFO] [stdout] test cli::setup::tests::test_save_config_to_temp_dir ... ok
[INFO] [stdout] test cli::setup::tests::test_setup_args_key ... ok
[INFO] [stdout] test cli::monitor::tests::test_ui_function_full_render ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_with_different_time_periods ... ok
[INFO] [stdout] test cli::monitor::tests::test_ui_with_paused_state ... ok
[INFO] [stdout] test cli::monitor::tests::test_ui_render_with_hidden_widgets ... ok
[INFO] [stdout] test cli::setup::tests::test_which_ghola_returns_bool ... ok
[INFO] [stdout] test cli::setup::tests::test_wizard_etherscan_already_configured ... ok
[INFO] [stdout] test cli::setup::tests::test_wizard_no_changes ... ok
[INFO] [stdout] test cli::setup::tests::test_wizard_with_csv_format ... ok
[INFO] [stdout] test cli::setup::tests::test_wizard_with_etherscan_key_and_json_format ... ok
[INFO] [stdout] test cli::setup::tests::test_wizard_with_other_chains_yes ... ok
[INFO] [stdout] test cli::monitor::tests::test_ui_render_log_scale_all_chart_modes ... ok
[INFO] [stdout] test cli::tests::test_cli_debug_impl ... ok
[INFO] [stdout] test cli::tests::test_cli_config_long_flag ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_all_with_different_time_periods_and_modes ... ok
[INFO] [stdout] test cli::monitor::tests::test_render_ui_with_all_color_schemes ... ok
[INFO] [stdout] test cli::tests::test_cli_log_level_debug ... ok
[INFO] [stdout] test cli::tests::test_cli_invalid_subcommand_fails ... ok
[INFO] [stdout] test cli::monitor::tests::test_ui_with_active_alerts ... ok
[INFO] [stdout] test cli::tests::test_cli_global_config_option ... ok
[INFO] [stdout] test cli::tests::test_cli_log_level_trace ... ok
[INFO] [stdout] test cli::tests::test_cli_log_level_default ... ok
[INFO] [stdout] test cli::tests::test_cli_no_color_flag ... ok
[INFO] [stdout] test cli::tests::test_cli_log_level_info ... ok
[INFO] [stdout] test cli::tests::test_cli_missing_required_args_fails ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_address_book_portfolio_alias ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_ai_flag ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_address_command ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_export_command ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_address_alias ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_interactive_no_banner ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_interactive_alias ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_interactive_command ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_market_summary ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_address_book_command ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_market_summary_with_thresholds ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_market_summary_with_pair ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_monitor_chain_short_flag ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_monitor_command ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_monitor_alias_mon ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_monitor_invalid_scale_fails ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_monitor_with_chain ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_monitor_invalid_layout_fails ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_monitor_with_layout ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_monitor_with_color_scheme ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_monitor_short_flags ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_monitor_with_export ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_monitor_with_refresh ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_monitor_with_scale ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_report_batch ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_token_health ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_token_health_venue_solana ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_token_health_alias ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_token_health_venue_biconomy ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_token_health_venue_eth ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_tx_alias ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_tx_command ... ok
[INFO] [stdout] test cli::tests::test_cli_verbose_separate_flags ... ok
[INFO] [stdout] test cli::tests::test_cli_verbose_flag_counting ... ok
[INFO] [stdout] test cli::token_health::tests::test_dex_venue_to_chain_case_insensitive ... ok
[INFO] [stdout] test cli::token_health::tests::test_dex_venue_to_chain_values ... ok
[INFO] [stdout] test cli::token_health::tests::test_is_dex_venue_uppercase ... ok
[INFO] [stdout] test cli::token_health::tests::test_is_dex_venue_values ... ok
[INFO] [stdout] test cli::token_health::tests::test_is_dex_venue ... ok
[INFO] [stdout] test cli::token_health::tests::test_format_large_number ... ok
[INFO] [stdout] test cli::tests::test_cli_parse_monitor_missing_token_fails ... ok
[INFO] [stdout] test cli::monitor::tests::test_ui_render_all_layouts_no_panic ... ok
[INFO] [stdout] test cli::monitor::tests::test_ui_render_all_layouts_with_alerts_and_export ... ok
[INFO] [stdout] test cli::setup::tests::test_show_status_with_multiple_keys ... ok
[INFO] [stdout] test cli::setup::tests::test_show_status_ghola_enabled_stealth_on ... ok
[INFO] [stdout] test cli::token_health::tests::test_run_token_health_config_markdown_override ... ok
[INFO] [stdout] test cli::token_health::tests::test_output_token_health_table_no_market_cap ... ok
[INFO] [stdout] test cli::token_health::tests::test_output_token_health_table_market_empty_checks ... ok
[INFO] [stdout] test cli::token_health::tests::test_run_token_health_json ... ok
[INFO] [stdout] test cli::token_health::tests::test_run_token_health_markdown ... ok
[INFO] [stdout] test cli::token_health::tests::test_output_token_health_table_with_dex_pairs_analytics ... ok
[INFO] [stdout] test cli::token_health::tests::test_token_health_args_all_formats ... ok
[INFO] [stdout] test cli::token_health::tests::test_token_health_args_debug ... ok
[INFO] [stdout] test cli::token_health::tests::test_run_token_health_csv ... ok
[INFO] [stdout] test cli::token_health::tests::test_output_token_health_table_market_no_bid_ask ... ok
[INFO] [stdout] test cli::token_health::tests::test_token_health_to_json_empty_checks ... ok
[INFO] [stdout] test cli::token_health::tests::test_output_token_health_table_market_missing_prices ... ok
[INFO] [stdout] test cli::token_health::tests::test_token_health_to_json_with_fail_checks ... ok
[INFO] [stdout] test cli::token_health::tests::test_token_health_to_json_market_none_values ... ok
[INFO] [stdout] test cli::token_health::tests::test_token_health_to_json_without_market ... ok
[INFO] [stdout] test cli::token_health::tests::test_token_health_to_json_with_market ... ok
[INFO] [stdout] test cli::token_health::tests::test_token_health_to_markdown_market_missing_prices ... ok
[INFO] [stdout] test cli::token_health::tests::test_token_health_to_markdown_market_empty_checks ... ok
[INFO] [stdout] test cli::token_health::tests::test_token_health_to_markdown_report_footer ... ok
[INFO] [stdout] test cli::token_health::tests::test_token_health_to_markdown_market_with_venue_none ... ok
[INFO] [stdout] test cli::token_health::tests::test_token_health_to_markdown_with_market ... ok
[INFO] [stdout] test cli::token_health::tests::test_token_health_to_markdown_unhealthy_market ... ok
[INFO] [stdout] test cli::setup::tests::test_show_status_no_panic ... ok
[INFO] [stdout] test cli::tx::tests::test_decoded_input_serialization ... ok
[INFO] [stdout] test cli::token_health::tests::test_token_health_to_markdown_without_venue ... ok
[INFO] [stdout] test cli::tx::tests::test_block_info_serialization ... ok
[INFO] [stdout] test cli::tx::tests::test_format_tx_markdown_basic ... ok
[INFO] [stdout] test cli::tx::tests::test_format_tx_markdown_contract_creation ... ok
[INFO] [stdout] test cli::token_health::tests::test_token_health_to_markdown_without_market ... ok
[INFO] [stdout] test cli::token_health::tests::test_output_token_health_table_without_market ... ok
[INFO] [stdout] test cli::tx::tests::test_format_tx_markdown_empty_internal_transactions ... ok
[INFO] [stdout] test cli::tx::tests::test_fetch_transaction_report_with_decode ... ok
[INFO] [stdout] test cli::tx::tests::test_format_tx_markdown_no_internal_transactions ... ok
[INFO] [stdout] test cli::tx::tests::test_format_tx_markdown_no_decoded_input ... ok
[INFO] [stdout] test cli::tx::tests::test_format_tx_markdown_failed_tx ... ok
[INFO] [stdout] test cli::tx::tests::test_format_tx_markdown_with_decoded_input ... ok
[INFO] [stdout] test cli::tx::tests::test_format_tx_markdown_with_internal_transactions ... ok
[INFO] [stdout] test cli::tx::tests::test_gas_info_serialization ... ok
[INFO] [stdout] test cli::tx::tests::test_output_report_csv ... ok
[INFO] [stdout] test cli::tx::tests::test_output_report_csv_no_to ... ok
[INFO] [stdout] test cli::tx::tests::test_internal_transaction_serialization ... ok
[INFO] [stdout] test cli::tx::tests::test_output_report_json ... ok
[INFO] [stdout] test cli::token_health::tests::test_run_token_health_table ... ok
[INFO] [stdout] test cli::setup::tests::test_show_status_with_custom_rpc ... ok
[INFO] [stdout] test cli::tx::tests::test_run_tx_invalid_hash ... ok
[INFO] [stdout] test cli::tx::tests::test_run_ethereum_tx ... ok
[INFO] [stdout] test cli::tx::tests::test_run_tx_auto_detect_tron ... ok
[INFO] [stdout] test cli::tx::tests::test_transaction_report_serialization ... ok
[INFO] [stdout] test cli::tx::tests::test_run_tx_with_trace ... ok
[INFO] [stdout] test cli::setup::tests::test_show_status_ghola_disabled ... ok
[INFO] [stdout] test cli::tx::tests::test_tx_args_with_options ... ok
[INFO] [stdout] test cli::tx::tests::test_tx_args_default_values ... ok
[INFO] [stdout] test cli::tx::tests::test_validate_tx_hash_invalid_solana ... ok
[INFO] [stdout] test cli::tx::tests::test_validate_tx_hash_invalid_hex_cli ... ok
[INFO] [stdout] test cli::setup::tests::test_run_status_mode ... ok
[INFO] [stdout] test cli::tx::tests::test_validate_tx_hash_missing_prefix ... ok
[INFO] [stdout] test cli::tx::tests::test_validate_tx_hash_invalid_tron ... ok
[INFO] [stdout] test cli::tx::tests::test_validate_tx_hash_too_long ... ok
[INFO] [stdout] test cli::tx::tests::test_validate_tx_hash_unsupported_chain ... ok
[INFO] [stdout] test cli::tx::tests::test_validate_tx_hash_valid ... ok
[INFO] [stdout] test cli::tx::tests::test_validate_tx_hash_too_short ... ok
[INFO] [stdout] test cli::setup::tests::test_show_status_with_all_keys ... ok
[INFO] [stdout] test cli::tx::tests::test_validate_tx_hash_valid_bsc ... ok
[INFO] [stdout] test cli::tx::tests::test_validate_tx_hash_valid_aegis ... ok
[INFO] [stdout] test cli::tx::tests::test_validate_tx_hash_valid_lowercase ... ok
[INFO] [stdout] test cli::tx::tests::test_validate_tx_hash_valid_solana ... ok
[INFO] [stdout] test cli::tx::tests::test_validate_tx_hash_valid_tron ... ok
[INFO] [stdout] test cli::venues::tests::test_count_user_venues_nonexistent ... ok
[INFO] [stdout] test cli::token_health::tests::test_output_token_health_table_market_without_venue ... ok
[INFO] [stdout] test cli::tx::tests::test_fetch_transaction_report_mock ... ok
[INFO] [stdout] test cli::tx::tests::test_validate_tx_hash_valid_polygon ... ok
[INFO] [stdout] test cli::venues::tests::test_list_format_default ... ok
[INFO] [stdout] test cli::venues::tests::test_count_user_venues_with_files ... ok
[INFO] [stdout] test cli::venues::tests::test_run_schema_json ... ok
[INFO] [stdout] test cli::venues::tests::test_run_schema_text ... ok
[INFO] [stdout] test cli::venues::tests::test_schema_format_default ... ok
[INFO] [stdout] test cli::venues::tests::test_serialize_descriptor_with_filter_and_side ... ok
[INFO] [stdout] test cli::venues::tests::test_serialize_descriptor_with_post_and_request_body ... ok
[INFO] [stdout] test cli::setup::tests::test_show_status_ghola_enabled_stealth_off ... ok
[INFO] [stdout] test cli::venues::tests::test_serialize_descriptor_yaml_roundtrip ... ok
[INFO] [stdout] test cli::venues::tests::test_serialize_full_descriptor ... ok
[INFO] [stdout] test cli::setup::tests::test_show_status_with_keys_no_panic ... ok
[INFO] [stdout] test cli::token_health::tests::test_output_token_health_table_with_market ... ok
[INFO] [stdout] test cli::venues::tests::test_validate_missing_file ... ok
[INFO] [stdout] test cli::venues::tests::test_run_list_json ... ok
[INFO] [stdout] test cli::venues::tests::test_validate_invalid_file ... ok
[INFO] [stdout] test cli::tx::tests::test_output_report_table_no_decoded ... ok
[INFO] [stdout] test cli::token_health::tests::test_run_token_health_dex_market ... ok
[INFO] [stdout] test cli::venues::tests::test_validate_file_empty_capabilities ... ok
[INFO] [stdout] test cli::tx::tests::test_output_report_table_empty_traces ... ok
[INFO] [stdout] test cli::venues::tests::test_validate_file_template_missing_base ... ok
[INFO] [stdout] test cli::tx::tests::test_run_tx_with_decode ... ok
[INFO] [stdout] test cli::venues::tests::test_run_venues_command_routes_to_subcommands ... ok
[INFO] [stdout] test cli::tx::tests::test_output_report_table ... ok
[INFO] [stdout] test cli::tx::tests::test_output_report_table_failed_tx ... ok
[INFO] [stdout] test cli::venues::tests::test_validate_valid_file ... ok
[INFO] [stdout] test cli::venues::tests::test_run_list_table ... ok
[INFO] [stdout] test cli::venues::tests::test_run_init_creates_directory_when_missing ... ok
[INFO] [stdout] test cli::venues::tests::test_run_init_skips_existing ... ok
[INFO] [stdout] test cli::venues::tests::test_run_init_to_temp_dir ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1229 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 1.57s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests scope_cli
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/cli/progress.rs - cli::progress (line 9) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.53s; merged doctests compilation took 0.52s
[INFO] running `Command { std: "docker" "inspect" "dabb6b0bc50d9d636542f309f604527fe98a391e7842674e38c37ace22dafa13", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dabb6b0bc50d9d636542f309f604527fe98a391e7842674e38c37ace22dafa13", kill_on_drop: false }`
[INFO] [stdout] dabb6b0bc50d9d636542f309f604527fe98a391e7842674e38c37ace22dafa13
