fix(chain)!: rm weird From impl

And signature of `example_cli::KeychainChangeSet` is changed.
This commit is contained in:
志宇 2023-09-14 20:14:42 +08:00
parent d43ae0231f
commit 1ff806c67f
No known key found for this signature in database
GPG Key ID: F6345C9837C2BDE8
2 changed files with 18 additions and 11 deletions

View File

@ -6,7 +6,7 @@ use alloc::vec::Vec;
use bitcoin::{OutPoint, Transaction, TxOut}; use bitcoin::{OutPoint, Transaction, TxOut};
use crate::{ use crate::{
keychain, local_chain, keychain,
tx_graph::{self, TxGraph}, tx_graph::{self, TxGraph},
Anchor, Append, Anchor, Append,
}; };
@ -225,12 +225,6 @@ impl<A, K> From<keychain::ChangeSet<K>> for ChangeSet<A, keychain::ChangeSet<K>>
} }
} }
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. /// Utilities for indexing transaction data.
/// ///
/// Types which implement this trait can be used to construct an [`IndexedTxGraph`]. /// Types which implement this trait can be used to construct an [`IndexedTxGraph`].

View File

@ -12,6 +12,7 @@ use bdk_chain::{
}, },
indexed_tx_graph::{self, IndexedTxGraph}, indexed_tx_graph::{self, IndexedTxGraph},
keychain::{self, KeychainTxOutIndex}, keychain::{self, KeychainTxOutIndex},
local_chain,
miniscript::{ miniscript::{
descriptor::{DescriptorSecretKey, KeyMap}, descriptor::{DescriptorSecretKey, KeyMap},
Descriptor, DescriptorPublicKey, Descriptor, DescriptorPublicKey,
@ -24,7 +25,10 @@ pub use clap;
use clap::{Parser, Subcommand}; use clap::{Parser, Subcommand};
pub type KeychainTxGraph<A> = IndexedTxGraph<A, KeychainTxOutIndex<Keychain>>; 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>; pub type Database<'m, C> = Persist<Store<'m, C>, C>;
#[derive(Parser)] #[derive(Parser)]
@ -200,7 +204,10 @@ where
let ((spk_i, spk), index_changeset) = spk_chooser(index, &Keychain::External); let ((spk_i, spk), index_changeset) = spk_chooser(index, &Keychain::External);
let db = &mut *db.lock().unwrap(); 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()?; db.commit()?;
let addr = Address::from_script(spk, network).context("failed to derive address")?; let addr = Address::from_script(spk, network).context("failed to derive address")?;
println!("[address @ {}] {}", spk_i, addr); println!("[address @ {}] {}", spk_i, addr);
@ -353,7 +360,10 @@ where
// If we're unable to persist this, then we don't want to broadcast. // If we're unable to persist this, then we don't want to broadcast.
{ {
let db = &mut *db.lock().unwrap(); 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()?; db.commit()?;
} }
@ -376,7 +386,10 @@ where
// We know the tx is at least unconfirmed now. Note if persisting here fails, // 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 // it's not a big deal since we can always find it again form
// blockchain. // blockchain.
db.lock().unwrap().stage(C::from(keychain_changeset)); db.lock().unwrap().stage(C::from((
local_chain::ChangeSet::default(),
keychain_changeset,
)));
Ok(()) Ok(())
} }
Err(e) => { Err(e) => {