Merge commit 'refs/pull/453/head' of github.com:bitcoindevkit/bdk

This commit is contained in:
Steve Myers 2021-11-03 13:51:59 -07:00
commit 7f91bcdf1a
No known key found for this signature in database
GPG Key ID: 8105A46B22C2D051
6 changed files with 28 additions and 29 deletions

View File

@ -6,13 +6,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [v0.13.0] - [v0.12.0]
- Exposed `get_tx()` method from `Database` to `Wallet`.
## [v0.12.0] - [v0.11.0] ## [v0.12.0] - [v0.11.0]
- Activate `miniscript/use-serde` feature to allow consumers of the library to access it via the re-exported `miniscript` crate. - Activate `miniscript/use-serde` feature to allow consumers of the library to access it via the re-exported `miniscript` crate.
- Add support for proxies in `EsploraBlockchain` - Add support for proxies in `EsploraBlockchain`
- Added `SqliteDatabase` that implements `Database` backed by a sqlite database using `rusqlite` crate. - Added `SqliteDatabase` that implements `Database` backed by a sqlite database using `rusqlite` crate.
- Exposed `get_tx()` method from `Database` to `Wallet`.
## [v0.11.0] - [v0.10.0] ## [v0.11.0] - [v0.10.0]
@ -385,4 +387,5 @@ final transaction is created by calling `finish` on the builder.
[v0.9.0]: https://github.com/bitcoindevkit/bdk/compare/v0.8.0...v0.9.0 [v0.9.0]: https://github.com/bitcoindevkit/bdk/compare/v0.8.0...v0.9.0
[v0.10.0]: https://github.com/bitcoindevkit/bdk/compare/v0.9.0...v0.10.0 [v0.10.0]: https://github.com/bitcoindevkit/bdk/compare/v0.9.0...v0.10.0
[v0.11.0]: https://github.com/bitcoindevkit/bdk/compare/v0.10.0...v0.11.0 [v0.11.0]: https://github.com/bitcoindevkit/bdk/compare/v0.10.0...v0.11.0
[v0.12.0]: https://github.com/bitcoindevkit/bdk/compare/v0.11.0...v0.12.0 [v0.12.0]: https://github.com/bitcoindevkit/bdk/compare/v0.11.0...v0.12.0
[v0.13.0]: https://github.com/bitcoindevkit/bdk/compare/v0.12.0...v0.13.0

View File

@ -1,6 +1,6 @@
[package] [package]
name = "bdk" name = "bdk"
version = "0.12.1-dev" version = "0.13.1-dev"
edition = "2018" edition = "2018"
authors = ["Alekos Filini <alekos.filini@gmail.com>", "Riccardo Casatta <riccardo@casatta.it>"] authors = ["Alekos Filini <alekos.filini@gmail.com>", "Riccardo Casatta <riccardo@casatta.it>"]
homepage = "https://bitcoindevkit.org" homepage = "https://bitcoindevkit.org"
@ -45,7 +45,7 @@ backtrace = { version = "=0.3.61", optional = true }
bitcoinconsensus = { version = "0.19.0-3", optional = true } bitcoinconsensus = { version = "0.19.0-3", optional = true }
# Needed by bdk_blockchain_tests macro # Needed by bdk_blockchain_tests macro
core-rpc = { version = "0.14", optional = true } bitcoincore-rpc = { version = "0.14", optional = true }
# Platform-specific dependencies # Platform-specific dependencies
[target.'cfg(not(target_arch = "wasm32"))'.dependencies] [target.'cfg(not(target_arch = "wasm32"))'.dependencies]
@ -66,7 +66,7 @@ compact_filters = ["rocksdb", "socks", "lazy_static", "cc"]
key-value-db = ["sled"] key-value-db = ["sled"]
all-keys = ["keys-bip39"] all-keys = ["keys-bip39"]
keys-bip39 = ["tiny-bip39", "backtrace"] keys-bip39 = ["tiny-bip39", "backtrace"]
rpc = ["core-rpc"] rpc = ["bitcoincore-rpc"]
# We currently provide mulitple implementations of `Blockchain`, all are # We currently provide mulitple implementations of `Blockchain`, all are
# blocking except for the `EsploraBlockchain` which can be either async or # blocking except for the `EsploraBlockchain` which can be either async or
@ -91,7 +91,7 @@ esplora = []
# Debug/Test features # Debug/Test features
test-blockchains = ["core-rpc", "electrum-client"] test-blockchains = ["bitcoincore-rpc", "electrum-client"]
test-electrum = ["electrum", "electrsd/electrs_0_8_10", "test-blockchains"] test-electrum = ["electrum", "electrsd/electrs_0_8_10", "test-blockchains"]
test-rpc = ["rpc", "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-esplora = ["electrsd/legacy", "electrsd/esplora_a33e97e1", "test-blockchains"]
@ -101,7 +101,7 @@ test-md-docs = ["electrum"]
lazy_static = "1.4" lazy_static = "1.4"
env_logger = "0.7" env_logger = "0.7"
clap = "2.33" clap = "2.33"
electrsd = { version= "0.10", features = ["trigger", "bitcoind_0_21_1"] } electrsd = { version= "0.12", features = ["trigger", "bitcoind_0_21_1"] }
[[example]] [[example]]
name = "address_validator" name = "address_validator"

View File

@ -38,13 +38,13 @@ use crate::database::{BatchDatabase, DatabaseUtils};
use crate::descriptor::{get_checksum, IntoWalletDescriptor}; use crate::descriptor::{get_checksum, IntoWalletDescriptor};
use crate::wallet::utils::SecpCtx; use crate::wallet::utils::SecpCtx;
use crate::{ConfirmationTime, Error, FeeRate, KeychainKind, LocalUtxo, TransactionDetails}; use crate::{ConfirmationTime, Error, FeeRate, KeychainKind, LocalUtxo, TransactionDetails};
use core_rpc::json::{ use bitcoincore_rpc::json::{
GetAddressInfoResultLabel, ImportMultiOptions, ImportMultiRequest, GetAddressInfoResultLabel, ImportMultiOptions, ImportMultiRequest,
ImportMultiRequestScriptPubkey, ImportMultiRescanSince, ImportMultiRequestScriptPubkey, ImportMultiRescanSince,
}; };
use core_rpc::jsonrpc::serde_json::Value; use bitcoincore_rpc::jsonrpc::serde_json::Value;
use core_rpc::Auth as RpcAuth; use bitcoincore_rpc::Auth as RpcAuth;
use core_rpc::{Client, RpcApi}; use bitcoincore_rpc::{Client, RpcApi};
use log::debug; use log::debug;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use std::collections::{HashMap, HashSet}; use std::collections::{HashMap, HashSet};
@ -82,7 +82,7 @@ pub struct RpcConfig {
pub skip_blocks: Option<u32>, pub skip_blocks: Option<u32>,
} }
/// This struct is equivalent to [core_rpc::Auth] but it implements [serde::Serialize] /// This struct is equivalent to [bitcoincore_rpc::Auth] but it implements [serde::Serialize]
/// To be removed once upstream equivalent is implementing Serialize (json serialization format /// To be removed once upstream equivalent is implementing Serialize (json serialization format
/// should be the same), see [rust-bitcoincore-rpc/pull/181](https://github.com/rust-bitcoin/rust-bitcoincore-rpc/pull/181) /// should be the same), see [rust-bitcoincore-rpc/pull/181](https://github.com/rust-bitcoin/rust-bitcoincore-rpc/pull/181)
#[derive(Clone, Debug, Hash, Eq, PartialEq, Ord, PartialOrd, Serialize, Deserialize)] #[derive(Clone, Debug, Hash, Eq, PartialEq, Ord, PartialOrd, Serialize, Deserialize)]

View File

@ -139,7 +139,7 @@ pub enum Error {
Sled(sled::Error), Sled(sled::Error),
#[cfg(feature = "rpc")] #[cfg(feature = "rpc")]
/// Rpc client error /// Rpc client error
Rpc(core_rpc::Error), Rpc(bitcoincore_rpc::Error),
#[cfg(feature = "sqlite")] #[cfg(feature = "sqlite")]
/// Rusqlite client error /// Rusqlite client error
Rusqlite(rusqlite::Error), Rusqlite(rusqlite::Error),
@ -196,7 +196,7 @@ impl_error!(electrum_client::Error, Electrum);
#[cfg(feature = "key-value-db")] #[cfg(feature = "key-value-db")]
impl_error!(sled::Error, Sled); impl_error!(sled::Error, Sled);
#[cfg(feature = "rpc")] #[cfg(feature = "rpc")]
impl_error!(core_rpc::Error, Rpc); impl_error!(bitcoincore_rpc::Error, Rpc);
#[cfg(feature = "sqlite")] #[cfg(feature = "sqlite")]
impl_error!(rusqlite::Error, Rusqlite); impl_error!(rusqlite::Error, Rusqlite);

View File

@ -40,7 +40,7 @@
//! interact with the bitcoin P2P network. //! interact with the bitcoin P2P network.
//! //!
//! ```toml //! ```toml
//! bdk = "0.12.0" //! bdk = "0.13.0"
//! ``` //! ```
#![cfg_attr( #![cfg_attr(
feature = "electrum", feature = "electrum",
@ -236,7 +236,7 @@ extern crate bdk_macros;
extern crate lazy_static; extern crate lazy_static;
#[cfg(feature = "rpc")] #[cfg(feature = "rpc")]
pub extern crate core_rpc; pub extern crate bitcoincore_rpc;
#[cfg(feature = "electrum")] #[cfg(feature = "electrum")]
pub extern crate electrum_client; pub extern crate electrum_client;

View File

@ -3,11 +3,11 @@ use bitcoin::consensus::encode::{deserialize, serialize};
use bitcoin::hashes::hex::{FromHex, ToHex}; use bitcoin::hashes::hex::{FromHex, ToHex};
use bitcoin::hashes::sha256d; use bitcoin::hashes::sha256d;
use bitcoin::{Address, Amount, Script, Transaction, Txid}; use bitcoin::{Address, Amount, Script, Transaction, Txid};
pub use bitcoincore_rpc::bitcoincore_rpc_json::AddressType;
pub use bitcoincore_rpc::{Auth, Client as RpcClient, RpcApi};
use core::str::FromStr; use core::str::FromStr;
pub use core_rpc::core_rpc_json::AddressType;
pub use core_rpc::{Auth, Client as RpcClient, RpcApi};
use electrsd::bitcoind::BitcoinD; use electrsd::bitcoind::BitcoinD;
use electrsd::{bitcoind, Conf, ElectrsD}; use electrsd::{bitcoind, ElectrsD};
pub use electrum_client::{Client as ElectrumClient, ElectrumApi}; pub use electrum_client::{Client as ElectrumClient, ElectrumApi};
#[allow(unused_imports)] #[allow(unused_imports)]
use log::{debug, error, info, log_enabled, trace, Level}; use log::{debug, error, info, log_enabled, trace, Level};
@ -24,19 +24,15 @@ pub struct TestClient {
impl TestClient { impl TestClient {
pub fn new(bitcoind_exe: String, electrs_exe: String) -> Self { pub fn new(bitcoind_exe: String, electrs_exe: String) -> Self {
debug!("launching {} and {}", &bitcoind_exe, &electrs_exe); debug!("launching {} and {}", &bitcoind_exe, &electrs_exe);
let conf = bitcoind::Conf {
view_stdout: log_enabled!(Level::Debug), let mut conf = bitcoind::Conf::default();
..Default::default() conf.view_stdout = log_enabled!(Level::Debug);
};
let bitcoind = BitcoinD::with_conf(bitcoind_exe, &conf).unwrap(); let bitcoind = BitcoinD::with_conf(bitcoind_exe, &conf).unwrap();
let http_enabled = cfg!(feature = "test-esplora"); let mut conf = electrsd::Conf::default();
conf.view_stderr = log_enabled!(Level::Debug);
conf.http_enabled = cfg!(feature = "test-esplora");
let conf = Conf {
http_enabled,
view_stderr: log_enabled!(Level::Debug),
..Default::default()
};
let electrsd = ElectrsD::with_conf(electrs_exe, &bitcoind, &conf).unwrap(); let electrsd = ElectrsD::with_conf(electrs_exe, &bitcoind, &conf).unwrap();
let node_address = bitcoind.client.get_new_address(None, None).unwrap(); let node_address = bitcoind.client.get_new_address(None, None).unwrap();