[package]
name = "autobahn-router"
version = "0.0.1"
edition = "2021"
build = "build.rs"

[[bin]]
name = "autobahn-router"
path = "src/main.rs"

[features]
capture-accounts = []

[lib]

[dependencies]
anchor-lang = "0.29.0"
anchor-client = "0.29.0"
anchor-spl = "0.29.0"
anyhow = { workspace = true }
thiserror = { workspace = true }
arrayref = "0.3.6"
opool = "0.1.1"
async-channel = "1.6"
async-stream = "0.2"
async-trait = "0.1"
atty = "0.2"
bs58 = "0.3.1"
bytemuck = "^1.7.2"
bytes = "1.0"
chrono = "0.4"
clap = { version = "3.1.8", features = ["derive", "env"] }
dotenv = "0.15.0"
fixed = { git = "https://github.com/blockworks-foundation/fixed.git", branch = "v1.11.0-borsh0_10-mango" }
futures = "0.3.17"
futures-core = "0.3"
futures-util = "0.3"
itertools = "0.12"
jemallocator = "0.5"
jsonrpc-core = "18.0.0"
jsonrpc-core-client = { version = "18.0.0", features = ["ws", "http", "tls"] }
# mango-v4 = { path = "../../programs/mango-v4", features = ["client"] }
# mango-v4-client = { path = "../../lib/client" }
mango-feeds-connector = { workspace = true }
once_cell = "1.12.0"
ordered-float = "4.2.0"
priority-queue = "2.0.2"
# pyth-sdk-solana = "0.10"
rand = "0.7"
serde = "1.0"
serde_derive = "1.0"
serde_json = "1.0"
# serum_dex = { workspace = true, features = ["no-entrypoint", "program"] }
sha2 = "0.10.6"
shellexpand = "2.1.0"
# solana-address-lookup-table-program = "1.17"
solana-account-decoder = "1.17"
solana-client = { workspace = true }
solana-logger = "1.17"
solana-program = "1.17"
solana-program-test = "1.17"
solana-sdk = { workspace = true }
solana-transaction-status = { version = "1.17" }
tokio = { workspace = true }
tokio-stream = { version = "0.1"}
tokio-tungstenite = "0.21"
toml = "0.5"
tracing = { version = "0.1", features = ["log"] }
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
regex = "1.9.5"
lazy_static = "1.5.0"
hdrhistogram = "7.5.4"
indexmap = "2.0.0"
router-lib = { path = "../../lib/router-lib/", version = "0.0.1" }

dex-orca = { path = "../../lib/dex-orca/", version = "0.0.1" }
dex-raydium-cp = { path = "../../lib/dex-raydium-cp/", version = "0.0.1" }
dex-raydium = { path = "../../lib/dex-raydium/", version = "0.0.1" }
dex-saber = { path = "../../lib/dex-saber/", version = "0.0.1" }
dex-infinity = { path = "../../lib/dex-infinity/", version = "0.0.1" }
dex-openbook-v2 = { path = "../../lib/dex-openbook-v2/", version = "0.0.1" }
dex-invariant = { path = "../../lib/dex-invariant", version = "0.0.1" }

router-config-lib = { path = "../../lib/router-config-lib" }
router-feed-lib = { path = "../../lib/router-feed-lib" }
spl-associated-token-account = { version = "1.0.5",features = ["no-entrypoint"] }

# grpc
yellowstone-grpc-client = { workspace = true }
yellowstone-grpc-proto = { workspace = true }
tonic = { version = "0.10.2", features = ["gzip"] }

# quic
quic-geyser-client = { workspace = true }
quic-geyser-common = { workspace = true }

# compressed snapshots
lz4 = "1.24.0"

# http server
axum = { version = "0.7.2", features = ["macros"] }
tower-http = { version = "0.5.2" , features = ["cors"]}

# internal
autobahn-executor = { path = "../../programs/autobahn-executor" }
base64 = "0.21.7"
bincode = "1.3.3"

# metrics
prometheus = "0.13.4"
warp = "0.3.5"


[dev-dependencies]
test-case = "*"
router-test-lib = { path = "../../lib/router-test-lib" }

[build-dependencies]
anyhow = { workspace = true }
vergen-gitcl = { version = "1.0.0-beta.2", features = [] }
