1
1
[package ]
2
2
name = " bdk"
3
- version = " 0.22 .0"
3
+ version = " 0.23 .0"
4
4
edition = " 2018"
5
5
authors = [" Alekos Filini <alekos.filini@gmail.com>" , " Riccardo Casatta <riccardo@casatta.it>" ]
6
6
homepage = " https://bitcoindevkit.org"
@@ -14,40 +14,39 @@ license = "MIT OR Apache-2.0"
14
14
[dependencies ]
15
15
bdk-macros = " ^0.6"
16
16
log = " ^0.4"
17
- miniscript = { version = " 7 .0" , features = [" use- serde" ] }
18
- bitcoin = { version = " 0.28 .1" , features = [" use- serde" , " base64" , " rand" ] }
17
+ miniscript = { version = " 8 .0" , features = [" serde" ] }
18
+ bitcoin = { version = " 0.29 .1" , features = [" serde" , " base64" , " rand" ] }
19
19
serde = { version = " ^1.0" , features = [" derive" ] }
20
20
serde_json = { version = " ^1.0" }
21
- rand = " ^0.7 "
21
+ rand = " ^0.8 "
22
22
23
23
# Optional dependencies
24
24
sled = { version = " 0.34" , optional = true }
25
- electrum-client = { version = " 0.11" , optional = true }
25
+ electrum-client = { version = " 0.12" , optional = true }
26
+ esplora-client = { version = " 0.2" , default-features = false , optional = true }
26
27
rusqlite = { version = " 0.27.0" , optional = true }
27
28
ahash = { version = " 0.7.6" , optional = true }
28
- reqwest = { version = " 0.11" , optional = true , default-features = false , features = [" json" ] }
29
- ureq = { version = " ~2.2.0" , features = [" json" ], optional = true }
30
29
futures = { version = " 0.3" , optional = true }
31
30
async-trait = { version = " 0.1" , optional = true }
32
31
rocksdb = { version = " 0.14" , default-features = false , features = [" snappy" ], optional = true }
33
32
cc = { version = " >=1.0.64" , optional = true }
34
33
socks = { version = " 0.3" , optional = true }
35
- hwi = { version = " 0.2.2 " , optional = true }
34
+ hwi = { version = " 0.3.0 " , optional = true }
36
35
37
36
bip39 = { version = " 1.0.1" , optional = true }
38
37
bitcoinconsensus = { version = " 0.19.0-3" , optional = true }
39
38
40
39
# Needed by bdk_blockchain_tests macro and the `rpc` feature
41
- bitcoincore-rpc = { version = " 0.15 " , optional = true }
40
+ bitcoincore-rpc = { version = " 0.16 " , optional = true }
42
41
43
42
# Platform-specific dependencies
44
43
[target .'cfg(not(target_arch = "wasm32"))' .dependencies ]
45
44
tokio = { version = " 1" , features = [" rt" ] }
46
45
47
46
[target .'cfg(target_arch = "wasm32")' .dependencies ]
47
+ getrandom = " 0.2"
48
48
async-trait = " 0.1"
49
49
js-sys = " 0.3"
50
- rand = { version = " ^0.7" , features = [" wasm-bindgen" ] }
51
50
52
51
[features ]
53
52
minimal = []
@@ -69,23 +68,26 @@ hardware-signer = ["hwi"]
69
68
#
70
69
# - Users wanting asynchronous HTTP calls should enable `async-interface` to get
71
70
# access to the asynchronous method implementations. Then, if Esplora is wanted,
72
- # enable `esplora` AND `reqwest` (`--features= use-esplora-reqwest`) .
71
+ # enable the ` use-esplora-async` feature .
73
72
# - Users wanting blocking HTTP calls can use any of the other blockchain
74
73
# implementations (`compact_filters`, `electrum`, or `esplora`). Users wanting to
75
- # use Esplora should enable `esplora` AND `ureq` (`--features= use-esplora-ureq`) .
74
+ # use Esplora should enable the ` use-esplora-blocking` feature .
76
75
#
77
76
# WARNING: Please take care with the features below, various combinations will
78
77
# fail to build. We cannot currently build `bdk` with `--all-features`.
79
78
async-interface = [" async-trait" ]
80
79
electrum = [" electrum-client" ]
81
80
# MUST ALSO USE `--no-default-features`.
82
- use-esplora-reqwest = [" esplora" , " reqwest" , " reqwest/socks" , " futures" ]
83
- use-esplora-ureq = [" esplora" , " ureq" , " ureq/socks" ]
81
+ use-esplora-async = [" esplora" , " esplora-client/async" , " futures" ]
82
+ use-esplora-blocking = [" esplora" , " esplora-client/blocking" ]
83
+ # Deprecated aliases
84
+ use-esplora-reqwest = [" use-esplora-async" ]
85
+ use-esplora-ureq = [" use-esplora-blocking" ]
84
86
# Typical configurations will not need to use `esplora` feature directly.
85
87
esplora = []
86
88
87
- # Use below feature with `use-esplora-reqwest ` to enable reqwest default TLS support
88
- reqwest-default-tls = [" reqwest/default-tls " ]
89
+ # Use below feature with `use-esplora-async ` to enable reqwest default TLS support
90
+ reqwest-default-tls = [" esplora-client/async-https " ]
89
91
90
92
# Debug/Test features
91
93
test-blockchains = [" bitcoincore-rpc" , " electrum-client" ]
@@ -96,13 +98,18 @@ test-esplora = ["electrsd/legacy", "electrsd/esplora_a33e97e1", "electrsd/bitcoi
96
98
test-md-docs = [" electrum" ]
97
99
test-hardware-signer = [" hardware-signer" ]
98
100
101
+ # This feature is used to run `cargo check` in our CI targeting wasm. It's not recommended
102
+ # for libraries to explicitly include the "getrandom/js" feature, so we only do it when
103
+ # necessary for running our CI. See: https://docs.rs/getrandom/0.2.8/getrandom/#webassembly-support
104
+ dev-getrandom-wasm = [" getrandom/js" ]
105
+
99
106
[dev-dependencies ]
100
107
lazy_static = " 1.4"
101
108
env_logger = " 0.7"
102
- electrsd = " 0.20"
109
+ electrsd = " 0.21"
110
+ # Move back to importing from rust-bitcoin once https://github.com/rust-bitcoin/rust-bitcoin/pull/1342 is released
111
+ base64 = " ^0.13"
103
112
104
- [[example ]]
105
- name = " address_validator"
106
113
[[example ]]
107
114
name = " compact_filters_balance"
108
115
required-features = [" compact_filters" ]
@@ -126,9 +133,14 @@ name = "psbt_signer"
126
133
path = " examples/psbt_signer.rs"
127
134
required-features = [" electrum" ]
128
135
136
+ [[example ]]
137
+ name = " hardware_signer"
138
+ path = " examples/hardware_signer.rs"
139
+ required-features = [" electrum" , " hardware-signer" ]
140
+
129
141
[workspace ]
130
142
members = [" macros" ]
131
143
[package .metadata .docs .rs ]
132
- features = [" compiler" , " electrum" , " esplora" , " use-esplora-ureq " , " compact_filters" , " rpc" , " key-value-db" , " sqlite" , " all-keys" , " verify" , " hardware-signer" ]
144
+ features = [" compiler" , " electrum" , " esplora" , " use-esplora-blocking " , " compact_filters" , " rpc" , " key-value-db" , " sqlite" , " all-keys" , " verify" , " hardware-signer" ]
133
145
# defines the configuration attribute `docsrs`
134
146
rustdoc-args = [" --cfg" , " docsrs" ]
0 commit comments