[examples_redesign] Implemented example_electrum

This is a version of `keychain_tracker_electrum` that uses the
redesigned structures instead.
This commit is contained in:
志宇
2023-05-12 17:43:05 +08:00
parent f55974a64b
commit 6a1ac7f80a
4 changed files with 344 additions and 12 deletions

View File

@@ -54,7 +54,7 @@ impl<A: Anchor, X: Append> Append for ChangeSet<A, X> {
}
fn is_empty(&self) -> bool {
todo!()
self.indexed_additions.is_empty() && self.extension.is_empty()
}
}
@@ -666,7 +666,7 @@ pub fn planned_utxos<A: Anchor, O: ChainOracle, K: Clone + bdk_tmp_plan::CanDeri
pub fn handle_commands<C: clap::Subcommand, A: Anchor, O: ChainOracle, X>(
graph: &Mutex<KeychainTxGraph<A>>,
db: &Mutex<Database<A, X>>,
chain: &O,
chain: &Mutex<O>,
keymap: &HashMap<DescriptorPublicKey, DescriptorSecretKey>,
network: Network,
broadcast: impl FnOnce(&Transaction) -> anyhow::Result<()>,
@@ -684,26 +684,31 @@ where
}
Commands::Balance => {
let graph = &*graph.lock().unwrap();
let chain = &*chain.lock().unwrap();
run_balance_cmd(graph, chain).map_err(anyhow::Error::from)
}
Commands::TxOut { txout_cmd } => {
let graph = &*graph.lock().unwrap();
let chain = &*chain.lock().unwrap();
run_txo_cmd(graph, chain, network, txout_cmd)
}
Commands::Send {
value,
address,
coin_select,
} => run_send_cmd(
graph,
db,
chain,
keymap,
coin_select,
address,
value,
broadcast,
),
} => {
let chain = &*chain.lock().unwrap();
run_send_cmd(
graph,
db,
chain,
keymap,
coin_select,
address,
value,
broadcast,
)
}
}
}