[examples] support esplora blockchain source in repl
This commit is contained in:
parent
c5dba115a0
commit
d9985c4bbb
@ -37,13 +37,15 @@ use log::{debug, error, info, trace, LevelFilter};
|
|||||||
use bitcoin::Network;
|
use bitcoin::Network;
|
||||||
|
|
||||||
use bdk::bitcoin;
|
use bdk::bitcoin;
|
||||||
use bdk::blockchain::ConfigurableBlockchain;
|
use bdk::blockchain::{
|
||||||
use bdk::blockchain::ElectrumBlockchain;
|
AnyBlockchain, AnyBlockchainConfig, ConfigurableBlockchain, ElectrumBlockchainConfig,
|
||||||
use bdk::blockchain::ElectrumBlockchainConfig;
|
};
|
||||||
use bdk::cli;
|
use bdk::cli;
|
||||||
use bdk::sled;
|
use bdk::sled;
|
||||||
use bdk::Wallet;
|
use bdk::Wallet;
|
||||||
|
|
||||||
|
use bdk::blockchain::esplora::EsploraBlockchainConfig;
|
||||||
|
|
||||||
fn prepare_home_dir() -> PathBuf {
|
fn prepare_home_dir() -> PathBuf {
|
||||||
let mut dir = PathBuf::new();
|
let mut dir = PathBuf::new();
|
||||||
dir.push(&dirs::home_dir().unwrap());
|
dir.push(&dirs::home_dir().unwrap());
|
||||||
@ -90,19 +92,25 @@ fn main() {
|
|||||||
.unwrap();
|
.unwrap();
|
||||||
debug!("database opened successfully");
|
debug!("database opened successfully");
|
||||||
|
|
||||||
let blockchain_config = ElectrumBlockchainConfig {
|
let config = match matches.value_of("esplora") {
|
||||||
url: matches.value_of("server").unwrap().to_string(),
|
Some(base_url) => AnyBlockchainConfig::Esplora(EsploraBlockchainConfig {
|
||||||
socks5: matches.value_of("proxy").map(ToString::to_string),
|
base_url: base_url.to_string(),
|
||||||
|
}),
|
||||||
|
None => AnyBlockchainConfig::Electrum(ElectrumBlockchainConfig {
|
||||||
|
url: matches.value_of("server").unwrap().to_string(),
|
||||||
|
socks5: matches.value_of("proxy").map(ToString::to_string),
|
||||||
|
}),
|
||||||
};
|
};
|
||||||
let wallet = Wallet::new(
|
let wallet = Arc::new(
|
||||||
descriptor,
|
Wallet::new(
|
||||||
change_descriptor,
|
descriptor,
|
||||||
network,
|
change_descriptor,
|
||||||
tree,
|
network,
|
||||||
ElectrumBlockchain::from_config(&blockchain_config).unwrap(),
|
tree,
|
||||||
)
|
AnyBlockchain::from_config(&config).unwrap(),
|
||||||
.unwrap();
|
)
|
||||||
let wallet = Arc::new(wallet);
|
.unwrap(),
|
||||||
|
);
|
||||||
|
|
||||||
if let Some(_sub_matches) = matches.subcommand_matches("repl") {
|
if let Some(_sub_matches) = matches.subcommand_matches("repl") {
|
||||||
let mut rl = Editor::<()>::new();
|
let mut rl = Editor::<()>::new();
|
||||||
|
@ -337,6 +337,14 @@ pub fn add_global_flags<'a, 'b>(app: App<'a, 'b>) -> App<'a, 'b> {
|
|||||||
.takes_value(true)
|
.takes_value(true)
|
||||||
.default_value("ssl://electrum.blockstream.info:60002"),
|
.default_value("ssl://electrum.blockstream.info:60002"),
|
||||||
)
|
)
|
||||||
|
.arg(
|
||||||
|
Arg::with_name("esplora")
|
||||||
|
.short("e")
|
||||||
|
.long("esplora")
|
||||||
|
.value_name("ESPLORA")
|
||||||
|
.help("Use the esplora server if given as parameter")
|
||||||
|
.takes_value(true),
|
||||||
|
)
|
||||||
.arg(
|
.arg(
|
||||||
Arg::with_name("proxy")
|
Arg::with_name("proxy")
|
||||||
.short("p")
|
.short("p")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user