[package]
name = "lexe"
# NOTE: Because this crate is published to crates.io, we need to respect
# semantic versioning; i.e. API-breaking changes should bump the minor version
# if before 1.0.0, otherwise bump the major version.
version = "0.1.8"
license = "MIT"
description = "Lexe Rust SDK"
documentation = "https://rust.lexe.tech"
authors = { workspace = true }
edition = { workspace = true }
repository = { workspace = true }
rust-version = { workspace = true }
publish = true

[features]
# Enables a synchronous `BlockingLexeWallet` wrapper.
blocking = ["dep:async-compat", "dep:futures"]
# Enables test utilities like `InMemoryFfs`.
test-utils = ["dep:tempfile"]
# Enables unstable APIs.
unstable = []

[dependencies]

# --- LEXE --- #

lexe-api = { workspace = true }
lexe-byte-array = { workspace = true }
lexe-common = { workspace = true }
lexe-crypto = { workspace = true }
lexe-enclave = { workspace = true }
lexe-hex = { workspace = true }
lexe-logger = { workspace = true }
lexe-node-client = { workspace = true }
lexe-payment-uri = { workspace = true }
lexe-std = { workspace = true }
lexe-tokio = { workspace = true }

# --- WORKSPACE --- #

anyhow = { workspace = true }
bip39 = { workspace = true }
bitcoin = { workspace = true }
cfg-if = { workspace = true }
lightning = { workspace = true }
semver = { workspace = true, features = ["serde"] }
serde = { workspace = true }
serde_json = { workspace = true }
tokio = { workspace = true, features = ["sync", "time"] }
tracing = { workspace = true }

# --- OPTIONAL --- #

async-compat = { workspace = true, optional = true }
futures = { workspace = true, optional = true, features = ["executor"] }
tempfile = { workspace = true, optional = true }

[dev-dependencies]
lexe-api = { workspace = true, features = ["test-utils"] }
lexe-common = { workspace = true, features = ["test-utils"] }

proptest = { workspace = true, features = ["std"] }
tempfile = { workspace = true }
tokio = { workspace = true, features = ["test-util"] }
