scope-bca-cli 0.8.3

Scope Blockchain Analysis - Command-line interface library
Documentation
[package]
# Published to crates.io as `scope-bca-cli` because the bare `scope-cli` name
# is owned by an unrelated project. The workspace directory stays `scope-cli`.
name = "scope-bca-cli"
description = "Scope Blockchain Analysis - Command-line interface library"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
keywords = ["blockchain", "ethereum", "cli", "analysis", "crypto"]
categories = ["command-line-utilities", "cryptography::cryptocurrencies"]
readme = "../../README.md"
exclude = [
    ".github/",
]

[lib]
name = "scope_cli"
path = "src/lib.rs"

[dependencies]
# Core library (same `use scope::*` import path). The `version` pin is
# required by crates.io publish and must be bumped with the workspace version.
scope = { path = "../scope-core", package = "scope-bca-core", version = "0.8.3" }

# CLI framework
clap = { version = "4.0", features = ["derive", "cargo"] }
clap_complete = "4"
indicatif = "0.17"

# Async runtime
tokio = { version = "1.0", features = ["full"] }

# Error handling
anyhow = "1.0"

# Serialization (needed by CLI modules)
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde-saphyr = "2.0.0"

# Terminal UI (unified TUI and live monitor)
ratatui = { version = "0.30", features = ["unstable-rendered-line-info"] }
crossterm = { version = "0.29", features = ["event-stream"] }
unicode-width = "0.2"
# Grapheme clusters, as ratatui draws them (tui/fit.rs)
unicode-segmentation = "1"
futures = "0.3"
ansi-to-tui = "8"
shlex = "1"

# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

# Time handling
chrono = { version = "0.4", features = ["serde"] }

# Terminal coloring

# Utilities used by CLI handlers
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls", "gzip", "brotli"] }
regex = "1"
textplots = "0.8"
dirs = "5.0"
async-trait = "0.1"
bs58 = "0.5"
urlencoding = "2.1"
sha2 = "0.10.9"
hex = "0.4"
thiserror = "1.0"
base64 = "0.22"

# Signal numbers without a tokio SignalKind constructor (SIGTSTP, SIGCONT)
[target.'cfg(unix)'.dependencies]
libc = "0.2"

# The console line read that Ctrl-C can cancel (prompt.rs)
[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.61", features = ["Win32_Foundation", "Win32_System_Console"] }

[dev-dependencies]
scope = { path = "../scope-core", package = "scope-bca-core", version = "0.8.3", features = ["test-support"] }
tempfile = "3.10"
assert_cmd = "2.0"
predicates = "3.0"
tokio-test = "0.4"
# Paused clock for the redraw-tick tests
tokio = { version = "1.0", features = ["test-util"] }
mockito = "1.2"