[package]
name = "liana"
version = "4.0.0"
authors = ["Antoine Poinsot <darosior@protonmail.com>"]
edition = "2018"
repository = "https://github.com/wizardsardine/liana"
license-file = "LICENCE"
keywords = ["bitcoin", "wallet", "miniscript", "inheritance", "recovery"]
description = "Liana wallet daemon"
exclude = [".github/", ".cirrus.yml", "tests/",  "test_data/", "contrib/", "pyproject.toml"]

[[bin]]
name = "lianad"
path = "src/bin/daemon.rs"
required-features = ["daemon"]

[[bin]]
name = "liana-cli"
path = "src/bin/cli.rs"
required-features = ["daemon"]

[features]
default = ["daemon"]
daemon = ["libc"]
nonblocking_shutdown = []

[dependencies]
# For managing transactions (it re-exports the bitcoin crate)
miniscript = { version = "11.0", features = ["serde", "compiler", "base64"] }

# Coin selection algorithms for spend transaction creation.
bdk_coin_select = { version = "0.1.0" }

# Don't reinvent the wheel
dirs = "5.0"

# We use TOML for the config, and JSON for RPC
serde = { version = "1.0", features = ["derive"] }
toml = "0.5"
serde_json = { version = "1.0", features = ["raw_value"] }

# Logging stuff
log = "0.4"
fern = "0.6"

# In order to have a backtrace on panic, because the
# stdlib does not have a programmatic interface yet
# to work with our custom panic hook.
backtrace = "0.3"

# Pinned to this version because they keep breaking their MSRV in point releases...
# FIXME: this is unfortunate, we don't receive the updates (sometimes critical) from SQLite.
rusqlite = { version = "0.30", features = ["bundled", "unlock_notify"] }

# To talk to bitcoind
jsonrpc = { version = "0.17", features = ["minreq_http"], default-features = false }

# Used for daemonization
libc = { version = "0.2", optional = true }

# Used for generating mnemonics
getrandom = "0.2"

# Used for the hot signer
bip39 = "2.0"

# Additional entropy for generating mnemonics
[target.'cfg(target_arch = "x86")'.dependencies]
rdrand = "0.8"
[target.'cfg(target_arch = "x86_64")'.dependencies]
rdrand = "0.8"
