[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 bdk::bitcoin;
|
||||
use bdk::blockchain::ConfigurableBlockchain;
|
||||
use bdk::blockchain::ElectrumBlockchain;
|
||||
use bdk::blockchain::ElectrumBlockchainConfig;
|
||||
use bdk::blockchain::{
|
||||
AnyBlockchain, AnyBlockchainConfig, ConfigurableBlockchain, ElectrumBlockchainConfig,
|
||||
};
|
||||
use bdk::cli;
|
||||
use bdk::sled;
|
||||
use bdk::Wallet;
|
||||
|
||||
use bdk::blockchain::esplora::EsploraBlockchainConfig;
|
||||
|
||||
fn prepare_home_dir() -> PathBuf {
|
||||
let mut dir = PathBuf::new();
|
||||
dir.push(&dirs::home_dir().unwrap());
|
||||
@ -90,19 +92,25 @@ fn main() {
|
||||
.unwrap();
|
||||
debug!("database opened successfully");
|
||||
|
||||
let blockchain_config = ElectrumBlockchainConfig {
|
||||
url: matches.value_of("server").unwrap().to_string(),
|
||||
socks5: matches.value_of("proxy").map(ToString::to_string),
|
||||
let config = match matches.value_of("esplora") {
|
||||
Some(base_url) => AnyBlockchainConfig::Esplora(EsploraBlockchainConfig {
|
||||
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(
|
||||
descriptor,
|
||||
change_descriptor,
|
||||
network,
|
||||
tree,
|
||||
ElectrumBlockchain::from_config(&blockchain_config).unwrap(),
|
||||
)
|
||||
.unwrap();
|
||||
let wallet = Arc::new(wallet);
|
||||
let wallet = Arc::new(
|
||||
Wallet::new(
|
||||
descriptor,
|
||||
change_descriptor,
|
||||
network,
|
||||
tree,
|
||||
AnyBlockchain::from_config(&config).unwrap(),
|
||||
)
|
||||
.unwrap(),
|
||||
);
|
||||
|
||||
if let Some(_sub_matches) = matches.subcommand_matches("repl") {
|
||||
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)
|
||||
.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::with_name("proxy")
|
||||
.short("p")
|
||||
|
Loading…
x
Reference in New Issue
Block a user