Update crates/electrum to bitcoin 0.30.0
This commit is contained in:
		
							parent
							
								
									f4e3ba3265
								
							
						
					
					
						commit
						91b0f0ba29
					
				@ -13,4 +13,5 @@ readme = "README.md"
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
[dependencies]
 | 
					[dependencies]
 | 
				
			||||||
bdk_chain = { path = "../chain", version = "0.5.0", features = ["serde", "miniscript"] }
 | 
					bdk_chain = { path = "../chain", version = "0.5.0", features = ["serde", "miniscript"] }
 | 
				
			||||||
electrum-client = { version = "0.12" }
 | 
					electrum-client = { version = "0.17" }
 | 
				
			||||||
 | 
					#rustls = { version = "=0.21.1", optional = true, features = ["dangerous_configuration"] }
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
use bdk_chain::{
 | 
					use bdk_chain::{
 | 
				
			||||||
    bitcoin::{hashes::hex::FromHex, OutPoint, Script, Transaction, Txid},
 | 
					    bitcoin::{OutPoint, ScriptBuf, Transaction, Txid},
 | 
				
			||||||
    keychain::LocalUpdate,
 | 
					    keychain::LocalUpdate,
 | 
				
			||||||
    local_chain::{self, CheckPoint},
 | 
					    local_chain::{self, CheckPoint},
 | 
				
			||||||
    tx_graph::{self, TxGraph},
 | 
					    tx_graph::{self, TxGraph},
 | 
				
			||||||
@ -9,6 +9,7 @@ use electrum_client::{Client, ElectrumApi, Error, HeaderNotification};
 | 
				
			|||||||
use std::{
 | 
					use std::{
 | 
				
			||||||
    collections::{BTreeMap, BTreeSet, HashMap, HashSet},
 | 
					    collections::{BTreeMap, BTreeSet, HashMap, HashSet},
 | 
				
			||||||
    fmt::Debug,
 | 
					    fmt::Debug,
 | 
				
			||||||
 | 
					    str::FromStr,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// We assume that a block of this depth and deeper cannot be reorged.
 | 
					/// We assume that a block of this depth and deeper cannot be reorged.
 | 
				
			||||||
@ -167,7 +168,7 @@ pub trait ElectrumExt<A> {
 | 
				
			|||||||
    fn scan<K: Ord + Clone>(
 | 
					    fn scan<K: Ord + Clone>(
 | 
				
			||||||
        &self,
 | 
					        &self,
 | 
				
			||||||
        prev_tip: Option<CheckPoint>,
 | 
					        prev_tip: Option<CheckPoint>,
 | 
				
			||||||
        keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, Script)>>,
 | 
					        keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, ScriptBuf)>>,
 | 
				
			||||||
        txids: impl IntoIterator<Item = Txid>,
 | 
					        txids: impl IntoIterator<Item = Txid>,
 | 
				
			||||||
        outpoints: impl IntoIterator<Item = OutPoint>,
 | 
					        outpoints: impl IntoIterator<Item = OutPoint>,
 | 
				
			||||||
        stop_gap: usize,
 | 
					        stop_gap: usize,
 | 
				
			||||||
@ -180,7 +181,7 @@ pub trait ElectrumExt<A> {
 | 
				
			|||||||
    fn scan_without_keychain(
 | 
					    fn scan_without_keychain(
 | 
				
			||||||
        &self,
 | 
					        &self,
 | 
				
			||||||
        prev_tip: Option<CheckPoint>,
 | 
					        prev_tip: Option<CheckPoint>,
 | 
				
			||||||
        misc_spks: impl IntoIterator<Item = Script>,
 | 
					        misc_spks: impl IntoIterator<Item = ScriptBuf>,
 | 
				
			||||||
        txids: impl IntoIterator<Item = Txid>,
 | 
					        txids: impl IntoIterator<Item = Txid>,
 | 
				
			||||||
        outpoints: impl IntoIterator<Item = OutPoint>,
 | 
					        outpoints: impl IntoIterator<Item = OutPoint>,
 | 
				
			||||||
        batch_size: usize,
 | 
					        batch_size: usize,
 | 
				
			||||||
@ -205,7 +206,7 @@ impl ElectrumExt<ConfirmationHeightAnchor> for Client {
 | 
				
			|||||||
    fn scan<K: Ord + Clone>(
 | 
					    fn scan<K: Ord + Clone>(
 | 
				
			||||||
        &self,
 | 
					        &self,
 | 
				
			||||||
        prev_tip: Option<CheckPoint>,
 | 
					        prev_tip: Option<CheckPoint>,
 | 
				
			||||||
        keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, Script)>>,
 | 
					        keychain_spks: BTreeMap<K, impl IntoIterator<Item = (u32, ScriptBuf)>>,
 | 
				
			||||||
        txids: impl IntoIterator<Item = Txid>,
 | 
					        txids: impl IntoIterator<Item = Txid>,
 | 
				
			||||||
        outpoints: impl IntoIterator<Item = OutPoint>,
 | 
					        outpoints: impl IntoIterator<Item = OutPoint>,
 | 
				
			||||||
        stop_gap: usize,
 | 
					        stop_gap: usize,
 | 
				
			||||||
@ -215,7 +216,7 @@ impl ElectrumExt<ConfirmationHeightAnchor> for Client {
 | 
				
			|||||||
            .into_iter()
 | 
					            .into_iter()
 | 
				
			||||||
            .map(|(k, s)| (k, s.into_iter()))
 | 
					            .map(|(k, s)| (k, s.into_iter()))
 | 
				
			||||||
            .collect::<BTreeMap<K, _>>();
 | 
					            .collect::<BTreeMap<K, _>>();
 | 
				
			||||||
        let mut scanned_spks = BTreeMap::<(K, u32), (Script, bool)>::new();
 | 
					        let mut scanned_spks = BTreeMap::<(K, u32), (ScriptBuf, bool)>::new();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        let txids = txids.into_iter().collect::<Vec<_>>();
 | 
					        let txids = txids.into_iter().collect::<Vec<_>>();
 | 
				
			||||||
        let outpoints = outpoints.into_iter().collect::<Vec<_>>();
 | 
					        let outpoints = outpoints.into_iter().collect::<Vec<_>>();
 | 
				
			||||||
@ -375,7 +376,7 @@ fn determine_tx_anchor(
 | 
				
			|||||||
    // transactions residing in the genesis block to have height 0, then interpret a height of 0 as
 | 
					    // transactions residing in the genesis block to have height 0, then interpret a height of 0 as
 | 
				
			||||||
    // unconfirmed for all other transactions.
 | 
					    // unconfirmed for all other transactions.
 | 
				
			||||||
    if txid
 | 
					    if txid
 | 
				
			||||||
        == Txid::from_hex("4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b")
 | 
					        == Txid::from_str("4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b")
 | 
				
			||||||
            .expect("must deserialize genesis coinbase txid")
 | 
					            .expect("must deserialize genesis coinbase txid")
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        let anchor_block = cps.values().next()?.block_id();
 | 
					        let anchor_block = cps.values().next()?.block_id();
 | 
				
			||||||
@ -506,10 +507,10 @@ fn populate_with_spks<K, I: Ord + Clone>(
 | 
				
			|||||||
    client: &Client,
 | 
					    client: &Client,
 | 
				
			||||||
    cps: &BTreeMap<u32, CheckPoint>,
 | 
					    cps: &BTreeMap<u32, CheckPoint>,
 | 
				
			||||||
    update: &mut ElectrumUpdate<K, ConfirmationHeightAnchor>,
 | 
					    update: &mut ElectrumUpdate<K, ConfirmationHeightAnchor>,
 | 
				
			||||||
    spks: &mut impl Iterator<Item = (I, Script)>,
 | 
					    spks: &mut impl Iterator<Item = (I, ScriptBuf)>,
 | 
				
			||||||
    stop_gap: usize,
 | 
					    stop_gap: usize,
 | 
				
			||||||
    batch_size: usize,
 | 
					    batch_size: usize,
 | 
				
			||||||
) -> Result<BTreeMap<I, (Script, bool)>, Error> {
 | 
					) -> Result<BTreeMap<I, (ScriptBuf, bool)>, Error> {
 | 
				
			||||||
    let mut unused_spk_count = 0_usize;
 | 
					    let mut unused_spk_count = 0_usize;
 | 
				
			||||||
    let mut scanned_spks = BTreeMap::new();
 | 
					    let mut scanned_spks = BTreeMap::new();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -521,7 +522,8 @@ fn populate_with_spks<K, I: Ord + Clone>(
 | 
				
			|||||||
            return Ok(scanned_spks);
 | 
					            return Ok(scanned_spks);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        let spk_histories = client.batch_script_get_history(spks.iter().map(|(_, s)| s))?;
 | 
					        let spk_histories =
 | 
				
			||||||
 | 
					            client.batch_script_get_history(spks.iter().map(|(_, s)| s.as_script()))?;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for ((spk_index, spk), spk_history) in spks.into_iter().zip(spk_histories) {
 | 
					        for ((spk_index, spk), spk_history) in spks.into_iter().zip(spk_histories) {
 | 
				
			||||||
            if spk_history.is_empty() {
 | 
					            if spk_history.is_empty() {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user