semioscan 0.9.2

Production-grade Rust library for blockchain analytics: gas calculation, price extraction, and block window calculations for EVM chains
Documentation
[package]
name = "semioscan"
version = "0.9.2"
edition = "2021"
authors = ["Joseph Livesey <joseph@semiotic.ai>"]
rust-version = "1.92"
description = "Production-grade Rust library for blockchain analytics: gas calculation, price extraction, and block window calculations for EVM chains"
license = "Apache-2.0"
repository = "https://github.com/semiotic-ai/semioscan"
homepage = "https://github.com/semiotic-ai/semioscan"
documentation = "https://docs.rs/semioscan"
keywords = ["ethereum", "blockchain", "analytics", "defi", "evm"]
categories = ["cryptography::cryptocurrencies", "development-tools"]

[features]
default = []
ws = ["alloy-provider/pubsub", "alloy-provider/ws"]
odos-example = ["dep:odos-sdk"]

[dependencies]
# Core blockchain dependencies (always required)
alloy-chains = { version = "0.2", features = ["serde"] }
alloy-consensus = { version = "1.7", default-features = false }
alloy-contract = { version = "1.7", default-features = false }
alloy-dyn-abi = { version = "1.5", default-features = false }
alloy-json-rpc = "1.7"
alloy-eips = { version = "1.7", default-features = false }
alloy-erc20 = { version = "1.1", default-features = false }
alloy-network = { version = "1.7", default-features = false }
alloy-primitives = { version = "1.5", default-features = false, features = [
    "std",
    "rlp",
] }
alloy-provider = { version = "1.7", default-features = false, features = [
    "anvil-node",
    "reqwest",
] }
alloy-rpc-client = "1.7"
alloy-rpc-types = "1.7"
alloy-sol-types = { version = "1.5", features = ["json"] }
alloy-sol-type-parser = "1.5"
alloy-transport = "1.7"
alloy-transport-http = { version = "1.7", default-features = false, features = [
    "reqwest",
] }
async-trait = "0.1"
# futures with std enables join_all for batch RPC calls and StreamExt for streaming
futures = { version = "0.3", default-features = false, features = [
    "alloc",
    "std",
] }
bigdecimal = { version = "0.4", features = ["serde"] }
chrono = { version = "0.4", features = ["serde"] }
op-alloy-network = "0.24"
url = { version = "2.5", default-features = false }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
thiserror = "2.0"
tokio = { version = "1", features = ["rt-multi-thread", "fs", "time", "sync"] }
tower = { version = "0.5", default-features = false }
tracing = "0.1"

# Optional: Odos DEX price source example (feature: odos-example)
odos-sdk = { version = "3.0", features = [
    "v2",
    "v3",
    "limit-orders",
], optional = true }

[dev-dependencies]
alloy-consensus = "1.7"
alloy-transport = "1.7"
anyhow = "1.0"
async-trait = "0.1"
dotenvy = "0.15"
proptest = "1.10"
tempfile = "3.26"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
tracing-subscriber = { version = "0.3", default-features = false, features = [
    "ansi",
    "env-filter",
    "fmt",
    "json",
] }

[[example]]
name = "router_token_discovery"
required-features = ["odos-example"]