use bitcoin::{OutPoint, Transaction, TxOut};
use crate::{
- keychain, local_chain,
+ keychain,
tx_graph::{self, TxGraph},
Anchor, Append,
};
}
}
-impl<A, IA> From<ChangeSet<A, IA>> for (local_chain::ChangeSet, ChangeSet<A, IA>) {
- fn from(indexed_changeset: ChangeSet<A, IA>) -> Self {
- (local_chain::ChangeSet::default(), indexed_changeset)
- }
-}
-
/// Utilities for indexing transaction data.
///
/// Types which implement this trait can be used to construct an [`IndexedTxGraph`].
},
indexed_tx_graph::{self, IndexedTxGraph},
keychain::{self, KeychainTxOutIndex},
+ local_chain,
miniscript::{
descriptor::{DescriptorSecretKey, KeyMap},
Descriptor, DescriptorPublicKey,
use clap::{Parser, Subcommand};
pub type KeychainTxGraph<A> = IndexedTxGraph<A, KeychainTxOutIndex<Keychain>>;
-pub type KeychainChangeSet<A> = indexed_tx_graph::ChangeSet<A, keychain::ChangeSet<Keychain>>;
+pub type KeychainChangeSet<A> = (
+ local_chain::ChangeSet,
+ indexed_tx_graph::ChangeSet<A, keychain::ChangeSet<Keychain>>,
+);
pub type Database<'m, C> = Persist<Store<'m, C>, C>;
#[derive(Parser)]
let ((spk_i, spk), index_changeset) = spk_chooser(index, &Keychain::External);
let db = &mut *db.lock().unwrap();
- db.stage(C::from(KeychainChangeSet::from(index_changeset)));
+ db.stage(C::from((
+ local_chain::ChangeSet::default(),
+ indexed_tx_graph::ChangeSet::from(index_changeset),
+ )));
db.commit()?;
let addr = Address::from_script(spk, network).context("failed to derive address")?;
println!("[address @ {}] {}", spk_i, addr);
// If we're unable to persist this, then we don't want to broadcast.
{
let db = &mut *db.lock().unwrap();
- db.stage(C::from(KeychainChangeSet::from(index_changeset)));
+ db.stage(C::from((
+ local_chain::ChangeSet::default(),
+ indexed_tx_graph::ChangeSet::from(index_changeset),
+ )));
db.commit()?;
}
// We know the tx is at least unconfirmed now. Note if persisting here fails,
// it's not a big deal since we can always find it again form
// blockchain.
- db.lock().unwrap().stage(C::from(keychain_changeset));
+ db.lock().unwrap().stage(C::from((
+ local_chain::ChangeSet::default(),
+ keychain_changeset,
+ )));
Ok(())
}
Err(e) => {