[package]
name = "synor-economics"
version = "0.1.0"
edition = "2021"
description = "Economics, pricing, metering, and billing for Synor L2 services"
license = "MIT OR Apache-2.0"
repository = "https://github.com/synor/blockchain"

[dependencies]
# Internal crates
synor-types = { path = "../synor-types" }

# Async runtime
tokio = { version = "1.40", features = ["full"] }
futures = "0.3"
async-trait = "0.1"

# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

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

# Decimal math for financial precision
rust_decimal = { version = "1.33", features = ["serde"] }
rust_decimal_macros = "1.33"

# Cryptographic hashing
sha2 = "0.10"
blake3 = "1.5"

# Error handling
thiserror = "1.0"
anyhow = "1.0"

# Logging
tracing = "0.1"

# Database/storage
rocksdb = { version = "0.22", optional = true }

# HTTP client for external price feeds
reqwest = { version = "0.11", features = ["json"], optional = true }

# Event streaming
async-channel = "2.1"

[dev-dependencies]
tokio-test = "0.4"
criterion = "0.5"
tempfile = "3.10"

[features]
default = ["http-feeds"]
http-feeds = ["reqwest"]
persistent = ["rocksdb"]

