Now works with latest released versions of rust-bitcoincore-rpc and bitcoind. Once these crates are updated to support creating descriptor wallets and add importdescriptors and bech32m support this test will need to be updated.
116 lines
4.3 KiB
TOML
116 lines
4.3 KiB
TOML
[package]
|
|
name = "bdk"
|
|
version = "0.13.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 = "^6.0", features = ["use-serde"] }
|
|
bitcoin = { version = "^0.27", features = ["use-serde", "base64"] }
|
|
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.8", optional = true }
|
|
rusqlite = { version = "0.25.3", optional = true }
|
|
ahash = { version = "=0.7.4", optional = true }
|
|
reqwest = { version = "0.11", optional = true, 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 }
|
|
|
|
bip39 = { version = "1.0.1", optional = true }
|
|
bitcoinconsensus = { version = "0.19.0-3", optional = true }
|
|
|
|
# Needed by bdk_blockchain_tests macro
|
|
bitcoincore-rpc = { version = "0.14", 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"]
|
|
compact_filters = ["rocksdb", "socks", "lazy_static", "cc"]
|
|
key-value-db = ["sled"]
|
|
all-keys = ["keys-bip39"]
|
|
keys-bip39 = ["bip39"]
|
|
rpc = ["bitcoincore-rpc"]
|
|
|
|
# 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 = []
|
|
|
|
|
|
# Debug/Test features
|
|
test-blockchains = ["bitcoincore-rpc", "electrum-client"]
|
|
test-electrum = ["electrum", "electrsd/electrs_0_8_10", "test-blockchains"]
|
|
test-rpc = ["rpc", "electrsd/electrs_0_8_10", "test-blockchains"]
|
|
test-esplora = ["electrsd/legacy", "electrsd/esplora_a33e97e1", "test-blockchains"]
|
|
test-md-docs = ["electrum"]
|
|
|
|
[dev-dependencies]
|
|
lazy_static = "1.4"
|
|
env_logger = "0.7"
|
|
clap = "2.33"
|
|
electrsd = { version= "0.12", features = ["trigger", "bitcoind_22_0"] }
|
|
|
|
[[example]]
|
|
name = "address_validator"
|
|
[[example]]
|
|
name = "compact_filters_balance"
|
|
required-features = ["compact_filters"]
|
|
|
|
[[example]]
|
|
name = "miniscriptc"
|
|
path = "examples/compiler.rs"
|
|
required-features = ["compiler"]
|
|
|
|
[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"]
|