[package] name = "serai-client" version = "0.1.0" description = "Client library for the Serai network" license = "MIT" repository = "https://github.com/serai-dex/serai/tree/develop/substrate/client" authors = ["Luke Parker "] keywords = ["serai"] edition = "2021" rust-version = "1.85" [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] [lints] workspace = true [dependencies] zeroize = "^1.5" thiserror = { version = "2", default-features = false, optional = true } bitvec = { version = "1", default-features = false, features = ["alloc", "serde"] } hex = "0.4" scale = { package = "parity-scale-codec", version = "3" } borsh = { version = "1", features = ["derive"] } serde = { version = "1", features = ["derive"], optional = true } serde_json = { version = "1", optional = true } serai-abi = { path = "../abi", version = "0.1" } multiaddr = { version = "0.18", optional = true } sp-core = { git = "https://github.com/serai-dex/substrate", optional = true } sp-runtime = { git = "https://github.com/serai-dex/substrate", optional = true } frame-system = { git = "https://github.com/serai-dex/substrate", optional = true } async-lock = "3" simple-request = { path = "../../common/request", version = "0.1", optional = true } bitcoin = { version = "0.32", optional = true } dalek-ff-group = { path = "../../crypto/dalek-ff-group", optional = true } ciphersuite = { path = "../../crypto/ciphersuite", version = "0.4", optional = true } monero-address = { git = "https://github.com/kayabaNerve/monero-oxide", rev = "54da48f27a05fa8656014942919da1dfbab4d8e3", version = "0.1.0", default-features = false, features = ["std"], optional = true } [dev-dependencies] rand_core = "0.6" hex = "0.4" blake2 = "0.10" ciphersuite = { path = "../../crypto/ciphersuite" } dalek-ff-group = { path = "../../crypto/dalek-ff-group" } ciphersuite-kp256 = { path = "../../crypto/ciphersuite/kp256" } dkg-musig = { path = "../../crypto/dkg/musig" } frost = { package = "modular-frost", path = "../../crypto/frost", features = ["tests"] } schnorrkel = { path = "../../crypto/schnorrkel", package = "frost-schnorrkel" } tokio = "1" dockertest = "0.5" serai-docker-tests = { path = "../../tests/docker" } [features] serai = ["thiserror/std", "serde", "serde_json", "serai-abi/serde", "multiaddr", "sp-core", "sp-runtime", "frame-system", "simple-request"] borsh = ["serai-abi/borsh"] networks = [] bitcoin = ["networks", "dep:bitcoin"] ethereum = ["networks"] monero = ["networks", "dalek-ff-group", "ciphersuite", "monero-address"] # Assumes the default usage is to use Serai as a DEX, which doesn't actually # require connecting to a Serai node default = ["bitcoin", "monero"]