[package]
name = "serai-client"
version = "0.1.0"
description = "Client library for the Serai network"
license = "AGPL-3.0-only"
repository = "https://github.com/serai-dex/serai/tree/develop/substrate/client"
authors = ["Luke Parker <lukeparker5132@gmail.com>"]
keywords = ["serai"]
edition = "2021"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
zeroize = "^1.5"
thiserror = { version = "1", optional = true }

scale = { package = "parity-scale-codec", version = "3" }
scale-info = { version = "2", optional = true }

serai-runtime = { path = "../runtime", version = "0.1" }

sp-core = { git = "https://github.com/serai-dex/substrate" }
subxt = { version = "0.29", default-features = false, features = ["jsonrpsee-ws"], optional = true }

bitcoin = { version = "0.30", optional = true }

ciphersuite = { path = "../../crypto/ciphersuite", version = "0.3", optional = true }
monero-serai = { path = "../../coins/monero", version = "0.1.4-alpha", optional = true }

[dev-dependencies]
lazy_static = "1"

rand_core = "0.6"

ciphersuite = { path = "../../crypto/ciphersuite", features = ["ristretto"] }
frost = { package = "modular-frost", path = "../../crypto/frost", features = ["tests"] }
schnorrkel = { path = "../../crypto/schnorrkel", package = "frost-schnorrkel" }

tokio = "1"

[features]
serai = ["thiserror", "scale-info", "subxt"]

networks = []
bitcoin = ["networks", "dep:bitcoin"]
monero = ["networks", "ciphersuite/ed25519", "monero-serai"]

# Assumes the default usage is to use Serai as a DEX, which doesn't actually
# require connecting to a Serai node
default = ["bitcoin", "monero"]
