[package]
name = "antegen-client"
version = "5.0.5"
authors.workspace = true
edition.workspace = true
license.workspace = true
description = "Client library for Antegen - Solana automation executor"
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
keywords = ["solana", "automation", "executor"]
readme = "../../README.md"

[dependencies]
antegen-fiber-program = { workspace = true }
antegen-thread-program = { workspace = true }
# Internal crates
solana-sdk = { workspace = true }
solana-program = { workspace = true }
tokio = { workspace = true, features = ["full"] }
anyhow = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
toml = { workspace = true }
log = { workspace = true }
dashmap = { workspace = true }
moka = { workspace = true }

# Ractor for actor framework
ractor = { workspace = true }
signal-hook = { workspace = true }
signal-hook-tokio = { workspace = true }
futures = { workspace = true }

# Hashing for deduplication
seahash = { workspace = true }
shellexpand = { workspace = true }
chrono = { workspace = true }
bincode = { workspace = true }
solana-account-decoder-client-types = { workspace = true }
solana-account-decoder = { workspace = true }
solana-compute-budget-interface = { workspace = true }
solana-system-interface = { workspace = true }
bs58 = { workspace = true }
anchor-lang = { workspace = true }

# Observability
loa-core = { workspace = true }

# HTTP client for raw RPC calls (simulateTransaction with account response)
reqwest = { version = "0.12", features = ["json"] }
base64 = "0.22"

# Efficient synchronization primitives
parking_lot = "0.12"

# Error handling
thiserror = "1.0"

# Persistent WebSocket connections
pws = "0.1"

# Compression for RPC responses
zstd = "0.13"

# TPU client for direct validator transaction submission
solana-tpu-client-next = { workspace = true }
solana-rpc-client = { workspace = true }
tokio-util = { workspace = true }

clap = { workspace = true, optional = true }
dirs = { workspace = true, optional = true }
env_logger = { workspace = true, optional = true }

[features]
node = ["dep:clap", "dep:dirs", "dep:env_logger"]

[[bin]]
name = "antegen-node"
path = "src/node/main.rs"
required-features = ["node"]

[dev-dependencies]
tokio-test = { workspace = true }
tempfile = { workspace = true }
