ethcli 0.21.24

Comprehensive Ethereum CLI for logs, transactions, accounts, and contracts
Documentation
[package]
name = "ethcli"
version = "0.21.24"
edition = "2021"
description = "Comprehensive Ethereum CLI for logs, transactions, accounts, and contracts"
license = "MIT"
repository = "https://github.com/yldfi/yldfi-rs/tree/main/crates/ethcli"
keywords = ["ethereum", "cli", "etherscan", "blockchain", "web3"]
categories = ["command-line-utilities", "web-programming"]
readme = "README.md"

[[bin]]
name = "ethcli"
path = "src/main.rs"

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

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

# Ethereum
alloy = { version = "1.6", features = [
    "providers",
    "rpc-types",
    "sol-types",
    "json-abi",
    "transports",
    "transport-http",
    "dyn-abi",
] }

# Etherscan API
foundry-block-explorers = "0.22"
alloy-chains = "0.2"

# HTTP client
reqwest = { version = "0.12", default-features = false, features = [
    "rustls-tls",
    "socks",
    "json",
] }

# CLI
clap = { version = "4", features = ["derive", "env"] }
clap_complete = "4"

# Serialization
serde = { version = "1.0.210", features = ["derive"] }
serde_json = "1"
toml = "0.8"

# Output formats
csv = "1.3"
rusqlite = { version = "0.32", features = ["bundled"] }

# Progress & logging
indicatif = "0.18"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

# Error handling
anyhow = "1"
thiserror = "2"

# Utilities
futures = "0.3"
parking_lot = "0.12"
rand = "0.8"
hex = "0.4"
dirs = "5"
regex = "1.11"
num-traits = "0.2"
sha2 = "0.10"
secrecy = { workspace = true }
semver = "1"
fs2 = "0.4"  # MED-003 fix: File locking for config persistence
chrono = "0.4"  # Timestamp formatting for CCXT commands

# API clients
alcmy = { version = "0.1", path = "../alcmy" }
cgko = { version = "0.1", path = "../cgko" }
dllma = { version = "0.1", path = "../dllma" }
mrls = { version = "0.1", path = "../mrls" }
dnsim = { version = "0.1", path = "../dnsim" }
dnapi = { version = "0.1", path = "../dnapi" }
crv = { version = "0.1", path = "../crv" }
pyth = { version = "0.1", path = "../pythc", package = "pythc" }
tndrly = { version = "0.3", path = "../tndrly" }
yldfi-common = { version = "0.1", path = "../yldfi-common" }

# DEX aggregator clients
openoc = { version = "0.1", path = "../openoc" }
cowp = { version = "0.1", path = "../cowp" }
kybr = { version = "0.1", path = "../kybr" }
zrxswap = { version = "0.1", path = "../zrxswap" }
oinch = { version = "0.1", path = "../oinch" }
lfi = { version = "0.1", path = "../lfi" }
vlra = { version = "0.1", path = "../vlra" }
ensof = { version = "0.1", path = "../ensof" }

# Uniswap client (V2, V3, V4)
unswp = { version = "0.1", path = "../unswp" }

# Yearn Kong API client
ykong = { version = "0.1", path = "../ykong" }

# GoPlus Security API client
gplus = { version = "0.1", path = "../gplus" }

# Solodit vulnerability database client
sldt = { version = "0.1", path = "../sldt" }

# Bytecode analysis
evmole = { version = "0.8", features = ["serde"] }
evm-disassembler = "0.5"

# Chainlink Data Streams
chainlink-data-streams-sdk = { version = "1.2", features = ["full"] }
chainlink-data-streams-report = "1.2"

# Cryptocurrency exchanges
ccxt-rust = { version = "0.1", features = ["rest", "websocket"] }

[dev-dependencies]
tokio-test = "0.4"
tempfile = "3"
assert_cmd = "2"
predicates = "3"
wiremock = "0.6"