[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", 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 } crc = { version = "3", 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", features = ["serialize"], optional = true } frost = { package = "modular-frost", path = "../../crypto/frost", version = "0.8", 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 = "1", git = "https://github.com/monero-rs/base58-monero", rev = "5045e8d2b817b3b6c1190661f504e879bc769c29", default-features = false, features = ["check"] } # Used for the provided RPC digest_auth = { version = "0.3", optional = true } reqwest = { version = "0.11", features = ["json"], optional = true } # Used for the binaries tokio = { version = "1", features = ["rt-multi-thread", "macros"], 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 = ["rt-multi-thread", "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_chacha/std", "rand/std", "rand_distr/std", "sha3/std", "multiexp/std", "monero-generators/std", "futures/std", "hex/std", "serde/std", "serde_json/std", ] http_rpc = ["digest_auth", "reqwest"] multisig = ["transcript", "frost", "dleq", "std"] binaries = ["tokio"] experimental = [] default = ["std", "http_rpc"]