[package]
name = "synord"
version = "0.1.0"
edition = "2021"
description = "Synor blockchain node daemon"
license = "MIT OR Apache-2.0"
readme = "README.md"
repository = "https://github.com/synorcc/synor"
keywords = ["blockchain", "dag", "node", "synor"]
categories = ["cryptography::cryptocurrencies"]

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

[dependencies]
# Synor crates
synor-types = { path = "../../crates/synor-types" }
synor-crypto = { path = "../../crates/synor-crypto" }
synor-dag = { path = "../../crates/synor-dag" }
synor-consensus = { path = "../../crates/synor-consensus" }
synor-storage = { path = "../../crates/synor-storage" }
synor-network = { path = "../../crates/synor-network" }
synor-mining = { path = "../../crates/synor-mining" }
synor-vm = { path = "../../crates/synor-vm" }
synor-rpc = { path = "../../crates/synor-rpc" }
synor-governance = { path = "../../crates/synor-governance" }

# Async runtime
tokio = { workspace = true, features = ["full", "signal"] }

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

# Configuration
serde = { workspace = true }
serde_json = { workspace = true }
toml = "0.8"
config = "0.14"

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

# Error handling
thiserror = { workspace = true }
anyhow = "1.0"

# Utils
hex = { workspace = true }
dirs = "5.0"
blake3 = "1.8"
num_cpus = "1.17"

# Serialization
borsh = { version = "1.3", features = ["derive"] }

# P2P networking types
libp2p = { version = "0.54", default-features = false }

# RPC
jsonrpsee = { workspace = true }

[dev-dependencies]
tempfile = "3"
proptest = "1.4"
tokio-test = "0.4"
parking_lot = "0.12"
futures = "0.3"

[features]
default = ["mining"]
mining = []
dev = []
