feat(electrum): impl ElectrumExt for all that impl ElectrumApi

This commit is contained in:
志宇 2024-01-31 22:19:01 +08:00
parent 8ad52f720f
commit ce8c617c9d
No known key found for this signature in database
GPG Key ID: F6345C9837C2BDE8

View File

@ -179,7 +179,7 @@ pub trait ElectrumExt {
) -> Result<ElectrumUpdate, Error>; ) -> Result<ElectrumUpdate, Error>;
} }
impl ElectrumExt for Client { impl<A: ElectrumApi> ElectrumExt for A {
fn full_scan<K: Ord + Clone>( fn full_scan<K: Ord + Clone>(
&self, &self,
prev_tip: CheckPoint, prev_tip: CheckPoint,
@ -303,7 +303,7 @@ impl ElectrumExt for Client {
/// Return a [`CheckPoint`] of the latest tip, that connects with `prev_tip`. /// Return a [`CheckPoint`] of the latest tip, that connects with `prev_tip`.
fn construct_update_tip( fn construct_update_tip(
client: &Client, client: &impl ElectrumApi,
prev_tip: CheckPoint, prev_tip: CheckPoint,
) -> Result<(CheckPoint, Option<u32>), Error> { ) -> Result<(CheckPoint, Option<u32>), Error> {
let HeaderNotification { height, .. } = client.block_headers_subscribe()?; let HeaderNotification { height, .. } = client.block_headers_subscribe()?;
@ -417,7 +417,7 @@ fn determine_tx_anchor(
} }
fn populate_with_outpoints( fn populate_with_outpoints(
client: &Client, client: &impl ElectrumApi,
cps: &BTreeMap<u32, CheckPoint>, cps: &BTreeMap<u32, CheckPoint>,
relevant_txids: &mut RelevantTxids, relevant_txids: &mut RelevantTxids,
outpoints: impl IntoIterator<Item = OutPoint>, outpoints: impl IntoIterator<Item = OutPoint>,
@ -478,7 +478,7 @@ fn populate_with_outpoints(
} }
fn populate_with_txids( fn populate_with_txids(
client: &Client, client: &impl ElectrumApi,
cps: &BTreeMap<u32, CheckPoint>, cps: &BTreeMap<u32, CheckPoint>,
relevant_txids: &mut RelevantTxids, relevant_txids: &mut RelevantTxids,
txids: impl IntoIterator<Item = Txid>, txids: impl IntoIterator<Item = Txid>,
@ -514,7 +514,7 @@ fn populate_with_txids(
} }
fn populate_with_spks<I: Ord + Clone>( fn populate_with_spks<I: Ord + Clone>(
client: &Client, client: &impl ElectrumApi,
cps: &BTreeMap<u32, CheckPoint>, cps: &BTreeMap<u32, CheckPoint>,
relevant_txids: &mut RelevantTxids, relevant_txids: &mut RelevantTxids,
spks: &mut impl Iterator<Item = (I, ScriptBuf)>, spks: &mut impl Iterator<Item = (I, ScriptBuf)>,