2020-01-22 23:13:11 +01:00
|
|
|
[package]
|
2020-09-14 14:25:38 +02:00
|
|
|
name = "bdk"
|
2022-08-11 20:56:03 +02:00
|
|
|
version = "0.21.1-dev"
|
2020-05-07 17:36:45 +02:00
|
|
|
edition = "2018"
|
2020-08-12 12:51:50 +02:00
|
|
|
authors = ["Alekos Filini <alekos.filini@gmail.com>", "Riccardo Casatta <riccardo@casatta.it>"]
|
2020-12-21 14:03:32 +01:00
|
|
|
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"
|
2021-03-03 13:22:05 -08:00
|
|
|
license = "MIT OR Apache-2.0"
|
2020-01-22 23:13:11 +01:00
|
|
|
|
|
|
|
[dependencies]
|
2021-09-30 10:40:51 -07:00
|
|
|
bdk-macros = "^0.6"
|
2020-01-27 22:02:55 +01:00
|
|
|
log = "^0.4"
|
2022-04-14 17:20:46 +02:00
|
|
|
miniscript = { version = "7.0", features = ["use-serde"] }
|
2022-06-01 14:50:08 +02:00
|
|
|
bitcoin = { version = "0.28.1", features = ["use-serde", "base64", "rand"] }
|
2020-01-27 22:02:55 +01:00
|
|
|
serde = { version = "^1.0", features = ["derive"] }
|
|
|
|
serde_json = { version = "^1.0" }
|
2020-08-06 16:56:41 +02:00
|
|
|
rand = "^0.7"
|
2020-02-05 11:59:02 +01:00
|
|
|
|
|
|
|
# Optional dependencies
|
2020-08-25 16:07:26 +02:00
|
|
|
sled = { version = "0.34", optional = true }
|
2022-04-14 17:20:46 +02:00
|
|
|
electrum-client = { version = "0.10", optional = true }
|
2022-06-06 10:57:50 +10:00
|
|
|
rusqlite = { version = "0.27.0", optional = true }
|
2022-06-06 10:57:09 +10:00
|
|
|
ahash = { version = "0.7.6", optional = true }
|
2021-12-07 16:34:03 +11:00
|
|
|
reqwest = { version = "0.11", optional = true, default-features = false, features = ["json"] }
|
2021-10-22 11:59:01 +02:00
|
|
|
ureq = { version = "~2.2.0", features = ["json"], optional = true }
|
2020-05-07 17:36:45 +02:00
|
|
|
futures = { version = "0.3", optional = true }
|
2020-08-10 11:41:19 +02:00
|
|
|
async-trait = { version = "0.1", optional = true }
|
2021-08-17 17:52:07 +02:00
|
|
|
rocksdb = { version = "0.14", default-features = false, features = ["snappy"], optional = true }
|
2021-02-03 09:42:23 -05:00
|
|
|
cc = { version = ">=1.0.64", optional = true }
|
2020-08-29 19:40:45 +02:00
|
|
|
socks = { version = "0.3", optional = true }
|
2020-08-25 16:07:26 +02:00
|
|
|
lazy_static = { version = "1.4", optional = true }
|
2022-07-26 00:07:04 +05:30
|
|
|
hwi = { version = "0.2.2", optional = true }
|
2021-09-26 18:51:03 -07:00
|
|
|
|
2021-10-31 20:23:25 +05:30
|
|
|
bip39 = { version = "1.0.1", optional = true }
|
2021-05-27 16:58:42 +02:00
|
|
|
bitcoinconsensus = { version = "0.19.0-3", optional = true }
|
2020-02-05 11:59:02 +01:00
|
|
|
|
2022-04-14 17:20:46 +02:00
|
|
|
# Needed by bdk_blockchain_tests macro and the `rpc` feature
|
|
|
|
bitcoincore-rpc = { version = "0.15", optional = true }
|
2021-05-19 13:04:32 +10:00
|
|
|
|
2021-08-31 14:23:24 +05:30
|
|
|
# Platform-specific dependencies
|
|
|
|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
2022-05-09 16:28:50 +02:00
|
|
|
tokio = { version = "1", features = ["rt"] }
|
2021-08-31 14:23:24 +05:30
|
|
|
|
2020-07-20 15:51:57 +02:00
|
|
|
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
|
|
|
async-trait = "0.1"
|
2020-08-06 11:12:15 +02:00
|
|
|
js-sys = "0.3"
|
2020-09-16 17:30:11 +02:00
|
|
|
rand = { version = "^0.7", features = ["wasm-bindgen"] }
|
2020-07-20 15:51:57 +02:00
|
|
|
|
2020-02-05 11:59:02 +01:00
|
|
|
[features]
|
2020-02-07 23:22:28 +01:00
|
|
|
minimal = []
|
2020-12-21 18:38:35 -08:00
|
|
|
compiler = ["miniscript/compiler"]
|
2021-05-27 16:58:42 +02:00
|
|
|
verify = ["bitcoinconsensus"]
|
2020-05-03 16:15:11 +02:00
|
|
|
default = ["key-value-db", "electrum"]
|
2021-10-14 08:24:32 -07:00
|
|
|
sqlite = ["rusqlite", "ahash"]
|
2022-03-11 19:44:31 -06:00
|
|
|
sqlite-bundled = ["sqlite", "rusqlite/bundled"]
|
2020-11-19 13:11:06 +01:00
|
|
|
compact_filters = ["rocksdb", "socks", "lazy_static", "cc"]
|
2020-02-05 11:59:02 +01:00
|
|
|
key-value-db = ["sled"]
|
2020-09-18 17:26:58 +02:00
|
|
|
all-keys = ["keys-bip39"]
|
2021-10-31 20:23:25 +05:30
|
|
|
keys-bip39 = ["bip39"]
|
2021-10-27 13:42:01 -07:00
|
|
|
rpc = ["bitcoincore-rpc"]
|
2022-07-26 00:07:04 +05:30
|
|
|
hardware-signer = ["hwi"]
|
2021-05-17 17:20:32 +02:00
|
|
|
|
2021-06-01 16:36:09 +10:00
|
|
|
# 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,
|
2021-07-29 09:39:36 +10:00
|
|
|
# enable `esplora` AND `reqwest` (`--features=use-esplora-reqwest`).
|
2021-06-01 16:36:09 +10:00
|
|
|
# - Users wanting blocking HTTP calls can use any of the other blockchain
|
|
|
|
# implementations (`compact_filters`, `electrum`, or `esplora`). Users wanting to
|
2021-07-29 09:39:36 +10:00
|
|
|
# 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`.
|
2021-06-01 16:36:09 +10:00
|
|
|
async-interface = ["async-trait"]
|
|
|
|
electrum = ["electrum-client"]
|
2021-07-29 09:39:36 +10:00
|
|
|
# MUST ALSO USE `--no-default-features`.
|
2021-08-30 15:49:07 +02:00
|
|
|
use-esplora-reqwest = ["esplora", "reqwest", "reqwest/socks", "futures"]
|
|
|
|
use-esplora-ureq = ["esplora", "ureq", "ureq/socks"]
|
2021-07-29 09:39:36 +10:00
|
|
|
# Typical configurations will not need to use `esplora` feature directly.
|
|
|
|
esplora = []
|
2021-06-01 16:36:09 +10:00
|
|
|
|
2021-12-07 16:34:03 +11:00
|
|
|
# Use below feature with `use-esplora-reqwest` to enable reqwest default TLS support
|
|
|
|
reqwest-default-tls = ["reqwest/default-tls"]
|
2020-02-06 12:17:28 +01:00
|
|
|
|
2020-08-10 10:49:34 +02:00
|
|
|
# Debug/Test features
|
2021-10-27 13:42:01 -07:00
|
|
|
test-blockchains = ["bitcoincore-rpc", "electrum-client"]
|
2022-06-07 13:14:52 +02:00
|
|
|
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"]
|
2020-12-21 18:38:35 -08:00
|
|
|
test-md-docs = ["electrum"]
|
2022-07-26 00:07:04 +05:30
|
|
|
test-hardware-signer = ["hardware-signer"]
|
2020-08-10 10:49:34 +02:00
|
|
|
|
2020-02-06 12:17:28 +01:00
|
|
|
[dev-dependencies]
|
2020-02-07 23:22:28 +01:00
|
|
|
lazy_static = "1.4"
|
|
|
|
env_logger = "0.7"
|
2020-12-21 18:38:35 -08:00
|
|
|
clap = "2.33"
|
2022-06-07 13:14:52 +02:00
|
|
|
electrsd = "0.19.1"
|
2020-04-28 17:28:15 +02:00
|
|
|
|
2020-08-15 23:21:13 +02:00
|
|
|
[[example]]
|
|
|
|
name = "address_validator"
|
2020-11-27 17:52:30 +01:00
|
|
|
[[example]]
|
|
|
|
name = "compact_filters_balance"
|
|
|
|
required-features = ["compact_filters"]
|
2020-04-28 17:28:15 +02:00
|
|
|
|
2020-04-29 11:52:45 +02:00
|
|
|
[[example]]
|
|
|
|
name = "miniscriptc"
|
|
|
|
path = "examples/compiler.rs"
|
|
|
|
required-features = ["compiler"]
|
|
|
|
|
2022-03-22 12:25:39 +05:30
|
|
|
[[example]]
|
|
|
|
name = "rpcwallet"
|
|
|
|
path = "examples/rpcwallet.rs"
|
2022-07-25 02:19:41 -03:00
|
|
|
required-features = ["keys-bip39", "key-value-db", "rpc", "electrsd/bitcoind_22_0"]
|
2022-03-22 12:25:39 +05:30
|
|
|
|
2020-08-10 10:49:34 +02:00
|
|
|
[workspace]
|
2021-05-19 13:04:32 +10:00
|
|
|
members = ["macros"]
|
2020-08-31 10:49:44 +02:00
|
|
|
[package.metadata.docs.rs]
|
2021-09-30 16:11:42 -07:00
|
|
|
features = ["compiler", "electrum", "esplora", "ureq", "compact_filters", "rpc", "key-value-db", "sqlite", "all-keys", "verify"]
|
2020-08-31 10:49:44 +02:00
|
|
|
# defines the configuration attribute `docsrs`
|
|
|
|
rustdoc-args = ["--cfg", "docsrs"]
|