feat!: improve wallet building methods
Remove returning `Result` for builder methods on `CreateParams` and `LoadParams`.
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
use bdk_wallet::file_store::Store;
|
||||
use bdk_wallet::CreateParams;
|
||||
use bdk_wallet::LoadParams;
|
||||
use bdk_wallet::Wallet;
|
||||
use std::io::Write;
|
||||
use std::str::FromStr;
|
||||
|
||||
@@ -26,11 +25,15 @@ fn main() -> Result<(), anyhow::Error> {
|
||||
|
||||
let mut db = Store::<bdk_wallet::ChangeSet>::open_or_create_new(DB_MAGIC.as_bytes(), db_path)?;
|
||||
|
||||
let load_params = LoadParams::with_descriptors(EXTERNAL_DESC, INTERNAL_DESC, NETWORK)?;
|
||||
let create_params = CreateParams::new(EXTERNAL_DESC, INTERNAL_DESC, NETWORK)?;
|
||||
let mut wallet = match load_params.load_wallet(&mut db)? {
|
||||
let wallet_opt = Wallet::load()
|
||||
.descriptors(EXTERNAL_DESC, INTERNAL_DESC)
|
||||
.network(NETWORK)
|
||||
.load_wallet(&mut db)?;
|
||||
let mut wallet = match wallet_opt {
|
||||
Some(wallet) => wallet,
|
||||
None => create_params.create_wallet(&mut db)?,
|
||||
None => Wallet::create(EXTERNAL_DESC, INTERNAL_DESC)
|
||||
.network(NETWORK)
|
||||
.create_wallet(&mut db)?,
|
||||
};
|
||||
|
||||
let address = wallet.next_unused_address(KeychainKind::External);
|
||||
|
||||
@@ -5,7 +5,7 @@ use bdk_esplora::{esplora_client, EsploraAsyncExt};
|
||||
use bdk_wallet::{
|
||||
bitcoin::{Amount, Network},
|
||||
rusqlite::Connection,
|
||||
CreateParams, KeychainKind, LoadParams, SignOptions,
|
||||
KeychainKind, SignOptions, Wallet,
|
||||
};
|
||||
|
||||
const SEND_AMOUNT: Amount = Amount::from_sat(5000);
|
||||
@@ -22,11 +22,15 @@ const ESPLORA_URL: &str = "http://signet.bitcoindevkit.net";
|
||||
async fn main() -> Result<(), anyhow::Error> {
|
||||
let mut conn = Connection::open(DB_PATH)?;
|
||||
|
||||
let load_params = LoadParams::with_descriptors(EXTERNAL_DESC, INTERNAL_DESC, NETWORK)?;
|
||||
let create_params = CreateParams::new(EXTERNAL_DESC, INTERNAL_DESC, NETWORK)?;
|
||||
let mut wallet = match load_params.load_wallet(&mut conn)? {
|
||||
let wallet_opt = Wallet::load()
|
||||
.descriptors(EXTERNAL_DESC, INTERNAL_DESC)
|
||||
.network(NETWORK)
|
||||
.load_wallet(&mut conn)?;
|
||||
let mut wallet = match wallet_opt {
|
||||
Some(wallet) => wallet,
|
||||
None => create_params.create_wallet(&mut conn)?,
|
||||
None => Wallet::create(EXTERNAL_DESC, INTERNAL_DESC)
|
||||
.network(NETWORK)
|
||||
.create_wallet(&mut conn)?,
|
||||
};
|
||||
|
||||
let address = wallet.next_unused_address(KeychainKind::External);
|
||||
|
||||
@@ -4,7 +4,7 @@ use bdk_esplora::{esplora_client, EsploraExt};
|
||||
use bdk_wallet::{
|
||||
bitcoin::{Amount, Network},
|
||||
file_store::Store,
|
||||
CreateParams, KeychainKind, LoadParams, SignOptions,
|
||||
KeychainKind, SignOptions, Wallet,
|
||||
};
|
||||
|
||||
const DB_MAGIC: &str = "bdk_wallet_esplora_example";
|
||||
@@ -21,12 +21,15 @@ const ESPLORA_URL: &str = "http://signet.bitcoindevkit.net";
|
||||
fn main() -> Result<(), anyhow::Error> {
|
||||
let mut db = Store::<bdk_wallet::ChangeSet>::open_or_create_new(DB_MAGIC.as_bytes(), DB_PATH)?;
|
||||
|
||||
let load_params = LoadParams::with_descriptors(EXTERNAL_DESC, INTERNAL_DESC, NETWORK)?;
|
||||
let create_params = CreateParams::new(EXTERNAL_DESC, INTERNAL_DESC, NETWORK)?;
|
||||
|
||||
let mut wallet = match load_params.load_wallet(&mut db)? {
|
||||
let wallet_opt = Wallet::load()
|
||||
.descriptors(EXTERNAL_DESC, INTERNAL_DESC)
|
||||
.network(NETWORK)
|
||||
.load_wallet(&mut db)?;
|
||||
let mut wallet = match wallet_opt {
|
||||
Some(wallet) => wallet,
|
||||
None => create_params.create_wallet(&mut db)?,
|
||||
None => Wallet::create(EXTERNAL_DESC, INTERNAL_DESC)
|
||||
.network(NETWORK)
|
||||
.create_wallet(&mut db)?,
|
||||
};
|
||||
|
||||
let address = wallet.next_unused_address(KeychainKind::External);
|
||||
|
||||
@@ -5,7 +5,7 @@ use bdk_bitcoind_rpc::{
|
||||
use bdk_wallet::{
|
||||
bitcoin::{Block, Network, Transaction},
|
||||
file_store::Store,
|
||||
CreateParams, LoadParams,
|
||||
Wallet,
|
||||
};
|
||||
use clap::{self, Parser};
|
||||
use std::{path::PathBuf, sync::mpsc::sync_channel, thread::spawn, time::Instant};
|
||||
@@ -88,13 +88,15 @@ fn main() -> anyhow::Result<()> {
|
||||
let start_load_wallet = Instant::now();
|
||||
let mut db =
|
||||
Store::<bdk_wallet::ChangeSet>::open_or_create_new(DB_MAGIC.as_bytes(), args.db_path)?;
|
||||
|
||||
let load_params =
|
||||
LoadParams::with_descriptors(&args.descriptor, &args.change_descriptor, args.network)?;
|
||||
let create_params = CreateParams::new(&args.descriptor, &args.change_descriptor, args.network)?;
|
||||
let mut wallet = match load_params.load_wallet(&mut db)? {
|
||||
let wallet_opt = Wallet::load()
|
||||
.descriptors(args.descriptor.clone(), args.change_descriptor.clone())
|
||||
.network(args.network)
|
||||
.load_wallet(&mut db)?;
|
||||
let mut wallet = match wallet_opt {
|
||||
Some(wallet) => wallet,
|
||||
None => create_params.create_wallet(&mut db)?,
|
||||
None => Wallet::create(args.descriptor, args.change_descriptor)
|
||||
.network(args.network)
|
||||
.create_wallet(&mut db)?,
|
||||
};
|
||||
println!(
|
||||
"Loaded wallet in {}s",
|
||||
|
||||
Reference in New Issue
Block a user