[package] name = "monero-serai" version = "0.1.4-alpha" description = "A modern Monero transaction library" license = "MIT" repository = "https://github.com/serai-dex/serai/tree/develop/coins/monero" authors = ["Luke Parker "] edition = "2021" [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] [dependencies] std-shims = { path = "../../common/std-shims", version = "^0.1.1", default-features = false } async-trait = { version = "0.1", default-features = false } thiserror = { version = "1", default-features = false, optional = true } zeroize = { version = "^1.5", default-features = false, features = ["zeroize_derive"] } subtle = { version = "^2.4", default-features = false } rand_core = { version = "0.6", default-features = false } # Used to send transactions rand = { version = "0.8", default-features = false } rand_chacha = { version = "0.3", default-features = false } # Used to select decoys rand_distr = { version = "0.4", default-features = false } sha3 = { version = "0.10", default-features = false } pbkdf2 = { version = "0.12", features = ["simple"], default-features = false } curve25519-dalek = { version = "4", default-features = false, features = ["alloc", "zeroize", "precomputed-tables"] } # Used for the hash to curve, along with the more complicated proofs group = { version = "0.13", default-features = false } dalek-ff-group = { path = "../../crypto/dalek-ff-group", version = "0.4", default-features = false } multiexp = { path = "../../crypto/multiexp", version = "0.4", default-features = false, features = ["batch"] } # Needed for multisig transcript = { package = "flexible-transcript", path = "../../crypto/transcript", version = "0.3", default-features = false, features = ["recommended"], optional = true } dleq = { path = "../../crypto/dleq", version = "0.4", default-features = false, features = ["serialize"], optional = true } frost = { package = "modular-frost", path = "../../crypto/frost", version = "0.8", default-features = false, features = ["ed25519"], optional = true } monero-generators = { path = "generators", version = "0.4", default-features = false } futures = { version = "0.3", default-features = false, features = ["alloc"], optional = true } hex-literal = "0.4" hex = { version = "0.4", default-features = false, features = ["alloc"] } serde = { version = "1", default-features = false, features = ["derive", "alloc"] } serde_json = { version = "1", default-features = false, features = ["alloc"] } base58-monero = { version = "2", default-features = false, features = ["check"] } # Used for the provided HTTP RPC digest_auth = { version = "0.3", default-features = false, optional = true } # Deprecated here means to enable deprecated warnings, not to restore deprecated APIs hyper = { version = "0.14", default-features = false, features = ["http1", "tcp", "client", "backports", "deprecated"], optional = true } hyper-rustls = { version = "0.24", default-features = false, features = ["http1", "native-tokio"], optional = true } tokio = { version = "1", default-features = false, optional = true } [build-dependencies] dalek-ff-group = { path = "../../crypto/dalek-ff-group", version = "0.4", default-features = false } monero-generators = { path = "generators", version = "0.4", default-features = false } [dev-dependencies] tokio = { version = "1", features = ["sync", "macros"] } frost = { package = "modular-frost", path = "../../crypto/frost", features = ["tests"] } [features] std = [ "std-shims/std", "thiserror", "zeroize/std", "subtle/std", "rand_core/std", "rand/std", "rand_chacha/std", "rand_distr/std", "sha3/std", "pbkdf2/std", "multiexp/std", "transcript/std", "dleq/std", "monero-generators/std", "futures/std", "hex/std", "serde/std", "serde_json/std", "base58-monero/std", ] http-rpc = ["digest_auth", "hyper", "hyper-rustls", "tokio/time", "tokio/rt"] multisig = ["transcript", "frost", "dleq", "std"] binaries = ["tokio/rt-multi-thread", "tokio/macros", "http-rpc"] experimental = [] default = ["std", "http-rpc"]