128 lines
4.9 KiB
TOML
128 lines
4.9 KiB
TOML
[package]
|
|
name = "bdk"
|
|
version = "0.21.1-dev"
|
|
edition = "2018"
|
|
authors = ["Alekos Filini <alekos.filini@gmail.com>", "Riccardo Casatta <riccardo@casatta.it>"]
|
|
homepage = "https://bitcoindevkit.org"
|
|
repository = "https://github.com/bitcoindevkit/bdk"
|
|
documentation = "https://docs.rs/bdk"
|
|
description = "A modern, lightweight, descriptor-based wallet library"
|
|
keywords = ["bitcoin", "wallet", "descriptor", "psbt"]
|
|
readme = "README.md"
|
|
license = "MIT OR Apache-2.0"
|
|
|
|
[dependencies]
|
|
bdk-macros = "^0.6"
|
|
log = "^0.4"
|
|
miniscript = { version = "7.0", features = ["use-serde"] }
|
|
bitcoin = { version = "0.28.1", features = ["use-serde", "base64", "rand"] }
|
|
serde = { version = "^1.0", features = ["derive"] }
|
|
serde_json = { version = "^1.0" }
|
|
rand = "^0.7"
|
|
|
|
# Optional dependencies
|
|
sled = { version = "0.34", optional = true }
|
|
electrum-client = { version = "0.10", optional = true }
|
|
rusqlite = { version = "0.27.0", optional = true }
|
|
ahash = { version = "0.7.6", optional = true }
|
|
reqwest = { version = "0.11", optional = true, default-features = false, features = ["json"] }
|
|
ureq = { version = "~2.2.0", features = ["json"], optional = true }
|
|
futures = { version = "0.3", optional = true }
|
|
async-trait = { version = "0.1", optional = true }
|
|
rocksdb = { version = "0.14", default-features = false, features = ["snappy"], optional = true }
|
|
cc = { version = ">=1.0.64", optional = true }
|
|
socks = { version = "0.3", optional = true }
|
|
lazy_static = { version = "1.4", optional = true }
|
|
hwi = { version = "0.2.2", optional = true }
|
|
|
|
bip39 = { version = "1.0.1", optional = true }
|
|
bitcoinconsensus = { version = "0.19.0-3", optional = true }
|
|
|
|
# Needed by bdk_blockchain_tests macro and the `rpc` feature
|
|
bitcoincore-rpc = { version = "0.15", optional = true }
|
|
|
|
# Platform-specific dependencies
|
|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
|
tokio = { version = "1", features = ["rt"] }
|
|
|
|
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
|
async-trait = "0.1"
|
|
js-sys = "0.3"
|
|
rand = { version = "^0.7", features = ["wasm-bindgen"] }
|
|
|
|
[features]
|
|
minimal = []
|
|
compiler = ["miniscript/compiler"]
|
|
verify = ["bitcoinconsensus"]
|
|
default = ["key-value-db", "electrum"]
|
|
sqlite = ["rusqlite", "ahash"]
|
|
sqlite-bundled = ["sqlite", "rusqlite/bundled"]
|
|
compact_filters = ["rocksdb", "socks", "lazy_static", "cc"]
|
|
key-value-db = ["sled"]
|
|
all-keys = ["keys-bip39"]
|
|
keys-bip39 = ["bip39"]
|
|
rpc = ["bitcoincore-rpc"]
|
|
hardware-signer = ["hwi"]
|
|
|
|
# We currently provide mulitple implementations of `Blockchain`, all are
|
|
# blocking except for the `EsploraBlockchain` which can be either async or
|
|
# blocking, depending on the HTTP client in use.
|
|
#
|
|
# - Users wanting asynchronous HTTP calls should enable `async-interface` to get
|
|
# access to the asynchronous method implementations. Then, if Esplora is wanted,
|
|
# enable `esplora` AND `reqwest` (`--features=use-esplora-reqwest`).
|
|
# - Users wanting blocking HTTP calls can use any of the other blockchain
|
|
# implementations (`compact_filters`, `electrum`, or `esplora`). Users wanting to
|
|
# use Esplora should enable `esplora` AND `ureq` (`--features=use-esplora-ureq`).
|
|
#
|
|
# WARNING: Please take care with the features below, various combinations will
|
|
# fail to build. We cannot currently build `bdk` with `--all-features`.
|
|
async-interface = ["async-trait"]
|
|
electrum = ["electrum-client"]
|
|
# MUST ALSO USE `--no-default-features`.
|
|
use-esplora-reqwest = ["esplora", "reqwest", "reqwest/socks", "futures"]
|
|
use-esplora-ureq = ["esplora", "ureq", "ureq/socks"]
|
|
# Typical configurations will not need to use `esplora` feature directly.
|
|
esplora = []
|
|
|
|
# Use below feature with `use-esplora-reqwest` to enable reqwest default TLS support
|
|
reqwest-default-tls = ["reqwest/default-tls"]
|
|
|
|
# Debug/Test features
|
|
test-blockchains = ["bitcoincore-rpc", "electrum-client"]
|
|
test-electrum = ["electrum", "electrsd/electrs_0_8_10", "electrsd/bitcoind_22_0", "test-blockchains"]
|
|
test-rpc = ["rpc", "electrsd/electrs_0_8_10", "electrsd/bitcoind_22_0", "test-blockchains"]
|
|
test-rpc-legacy = ["rpc", "electrsd/electrs_0_8_10", "electrsd/bitcoind_0_20_0", "test-blockchains"]
|
|
test-esplora = ["electrsd/legacy", "electrsd/esplora_a33e97e1", "electrsd/bitcoind_22_0", "test-blockchains"]
|
|
test-md-docs = ["electrum"]
|
|
test-hardware-signer = ["hardware-signer"]
|
|
|
|
[dev-dependencies]
|
|
lazy_static = "1.4"
|
|
env_logger = "0.7"
|
|
clap = "2.33"
|
|
electrsd = "0.19.1"
|
|
|
|
[[example]]
|
|
name = "address_validator"
|
|
[[example]]
|
|
name = "compact_filters_balance"
|
|
required-features = ["compact_filters"]
|
|
|
|
[[example]]
|
|
name = "miniscriptc"
|
|
path = "examples/compiler.rs"
|
|
required-features = ["compiler"]
|
|
|
|
[[example]]
|
|
name = "rpcwallet"
|
|
path = "examples/rpcwallet.rs"
|
|
required-features = ["keys-bip39", "key-value-db", "rpc", "electrsd/bitcoind_22_0"]
|
|
|
|
[workspace]
|
|
members = ["macros"]
|
|
[package.metadata.docs.rs]
|
|
features = ["compiler", "electrum", "esplora", "ureq", "compact_filters", "rpc", "key-value-db", "sqlite", "all-keys", "verify"]
|
|
# defines the configuration attribute `docsrs`
|
|
rustdoc-args = ["--cfg", "docsrs"]
|