Fix Clippy Rust 1.65

This commit is contained in:
Yuki Kishimoto 2022-12-08 13:40:50 +01:00
parent eac739d395
commit 3a782b3b0d
No known key found for this signature in database
GPG Key ID: 8D3DCD04249619D1
10 changed files with 40 additions and 28 deletions

View File

@ -131,7 +131,7 @@ impl GetBlockHash for AnyBlockchain {
impl WalletSync for AnyBlockchain { impl WalletSync for AnyBlockchain {
fn wallet_sync<D: BatchDatabase>( fn wallet_sync<D: BatchDatabase>(
&self, &self,
database: &mut D, database: &RefCell<D>,
progress_update: Box<dyn Progress>, progress_update: Box<dyn Progress>,
) -> Result<(), Error> { ) -> Result<(), Error> {
maybe_await!(impl_inner_method!( maybe_await!(impl_inner_method!(
@ -144,7 +144,7 @@ impl WalletSync for AnyBlockchain {
fn wallet_setup<D: BatchDatabase>( fn wallet_setup<D: BatchDatabase>(
&self, &self,
database: &mut D, database: &RefCell<D>,
progress_update: Box<dyn Progress>, progress_update: Box<dyn Progress>,
) -> Result<(), Error> { ) -> Result<(), Error> {
maybe_await!(impl_inner_method!( maybe_await!(impl_inner_method!(

View File

@ -51,6 +51,7 @@
use std::collections::HashSet; use std::collections::HashSet;
use std::fmt; use std::fmt;
use std::ops::DerefMut;
use std::path::Path; use std::path::Path;
use std::sync::atomic::{AtomicUsize, Ordering}; use std::sync::atomic::{AtomicUsize, Ordering};
use std::sync::{Arc, Mutex}; use std::sync::{Arc, Mutex};
@ -274,7 +275,7 @@ impl WalletSync for CompactFiltersBlockchain {
#[allow(clippy::mutex_atomic)] // Mutex is easier to understand than a CAS loop. #[allow(clippy::mutex_atomic)] // Mutex is easier to understand than a CAS loop.
fn wallet_setup<D: BatchDatabase>( fn wallet_setup<D: BatchDatabase>(
&self, &self,
database: &mut D, database: &RefCell<D>,
progress_update: Box<dyn Progress>, progress_update: Box<dyn Progress>,
) -> Result<(), Error> { ) -> Result<(), Error> {
let first_peer = &self.peers[0]; let first_peer = &self.peers[0];
@ -322,6 +323,9 @@ impl WalletSync for CompactFiltersBlockchain {
cf_sync.prepare_sync(Arc::clone(first_peer))?; cf_sync.prepare_sync(Arc::clone(first_peer))?;
let mut database = database.borrow_mut();
let database = database.deref_mut();
let all_scripts = Arc::new( let all_scripts = Arc::new(
database database
.iter_script_pubkeys(None)? .iter_script_pubkeys(None)?

View File

@ -233,7 +233,7 @@ impl ChainStore<Full> {
batch.put_cf( batch.put_cf(
cf_handle, cf_handle,
StoreEntry::BlockHeaderIndex(Some(genesis.block_hash())).get_key(), StoreEntry::BlockHeaderIndex(Some(genesis.block_hash())).get_key(),
&0usize.to_be_bytes(), 0usize.to_be_bytes(),
); );
store.write(batch)?; store.write(batch)?;
} }
@ -302,7 +302,7 @@ impl ChainStore<Full> {
batch.put_cf( batch.put_cf(
new_cf_handle, new_cf_handle,
StoreEntry::BlockHeaderIndex(Some(header.block_hash())).get_key(), StoreEntry::BlockHeaderIndex(Some(header.block_hash())).get_key(),
&from.to_be_bytes(), from.to_be_bytes(),
); );
batch.put_cf( batch.put_cf(
new_cf_handle, new_cf_handle,
@ -584,7 +584,7 @@ impl<T: StoreType> ChainStore<T> {
batch.put_cf( batch.put_cf(
cf_handle, cf_handle,
StoreEntry::BlockHeaderIndex(Some(header.block_hash())).get_key(), StoreEntry::BlockHeaderIndex(Some(header.block_hash())).get_key(),
&(height).to_be_bytes(), (height).to_be_bytes(),
); );
batch.put_cf( batch.put_cf(
cf_handle, cf_handle,

View File

@ -25,7 +25,7 @@
//! ``` //! ```
use std::collections::{HashMap, HashSet}; use std::collections::{HashMap, HashSet};
use std::ops::Deref; use std::ops::{Deref, DerefMut};
#[allow(unused_imports)] #[allow(unused_imports)]
use log::{debug, error, info, trace}; use log::{debug, error, info, trace};
@ -117,9 +117,11 @@ impl GetBlockHash for ElectrumBlockchain {
impl WalletSync for ElectrumBlockchain { impl WalletSync for ElectrumBlockchain {
fn wallet_setup<D: BatchDatabase>( fn wallet_setup<D: BatchDatabase>(
&self, &self,
database: &mut D, database: &RefCell<D>,
_progress_update: Box<dyn Progress>, _progress_update: Box<dyn Progress>,
) -> Result<(), Error> { ) -> Result<(), Error> {
let mut database = database.borrow_mut();
let database = database.deref_mut();
let mut request = script_sync::start(database, self.stop_gap)?; let mut request = script_sync::start(database, self.stop_gap)?;
let mut block_times = HashMap::<u32, u32>::new(); let mut block_times = HashMap::<u32, u32>::new();
let mut txid_to_height = HashMap::<Txid, u32>::new(); let mut txid_to_height = HashMap::<Txid, u32>::new();

View File

@ -12,7 +12,7 @@
//! Esplora by way of `reqwest` HTTP client. //! Esplora by way of `reqwest` HTTP client.
use std::collections::{HashMap, HashSet}; use std::collections::{HashMap, HashSet};
use std::ops::Deref; use std::ops::{Deref, DerefMut};
use bitcoin::{Transaction, Txid}; use bitcoin::{Transaction, Txid};
@ -135,10 +135,12 @@ impl GetBlockHash for EsploraBlockchain {
impl WalletSync for EsploraBlockchain { impl WalletSync for EsploraBlockchain {
fn wallet_setup<D: BatchDatabase>( fn wallet_setup<D: BatchDatabase>(
&self, &self,
database: &mut D, database: &RefCell<D>,
_progress_update: Box<dyn Progress>, _progress_update: Box<dyn Progress>,
) -> Result<(), Error> { ) -> Result<(), Error> {
use crate::blockchain::script_sync::Request; use crate::blockchain::script_sync::Request;
let mut database = database.borrow_mut();
let database = database.deref_mut();
let mut request = script_sync::start(database, self.stop_gap)?; let mut request = script_sync::start(database, self.stop_gap)?;
let mut tx_index: HashMap<Txid, Tx> = HashMap::new(); let mut tx_index: HashMap<Txid, Tx> = HashMap::new();

View File

@ -12,6 +12,7 @@
//! Esplora by way of `ureq` HTTP client. //! Esplora by way of `ureq` HTTP client.
use std::collections::{HashMap, HashSet}; use std::collections::{HashMap, HashSet};
use std::ops::DerefMut;
#[allow(unused_imports)] #[allow(unused_imports)]
use log::{debug, error, info, trace}; use log::{debug, error, info, trace};
@ -117,10 +118,12 @@ impl GetBlockHash for EsploraBlockchain {
impl WalletSync for EsploraBlockchain { impl WalletSync for EsploraBlockchain {
fn wallet_setup<D: BatchDatabase>( fn wallet_setup<D: BatchDatabase>(
&self, &self,
database: &mut D, database: &RefCell<D>,
_progress_update: Box<dyn Progress>, _progress_update: Box<dyn Progress>,
) -> Result<(), Error> { ) -> Result<(), Error> {
use crate::blockchain::script_sync::Request; use crate::blockchain::script_sync::Request;
let mut database = database.borrow_mut();
let database = database.deref_mut();
let mut request = script_sync::start(database, self.stop_gap)?; let mut request = script_sync::start(database, self.stop_gap)?;
let mut tx_index: HashMap<Txid, Tx> = HashMap::new(); let mut tx_index: HashMap<Txid, Tx> = HashMap::new();
let batch_update = loop { let batch_update = loop {

View File

@ -16,6 +16,7 @@
//! [Compact Filters/Neutrino](crate::blockchain::compact_filters), along with a generalized trait //! [Compact Filters/Neutrino](crate::blockchain::compact_filters), along with a generalized trait
//! [`Blockchain`] that can be implemented to build customized backends. //! [`Blockchain`] that can be implemented to build customized backends.
use std::cell::RefCell;
use std::collections::HashSet; use std::collections::HashSet;
use std::ops::Deref; use std::ops::Deref;
use std::sync::mpsc::{channel, Receiver, Sender}; use std::sync::mpsc::{channel, Receiver, Sender};
@ -133,7 +134,7 @@ pub trait WalletSync {
/// Populate the internal database with transactions and UTXOs /// Populate the internal database with transactions and UTXOs
fn wallet_setup<D: BatchDatabase>( fn wallet_setup<D: BatchDatabase>(
&self, &self,
database: &mut D, database: &RefCell<D>,
progress_update: Box<dyn Progress>, progress_update: Box<dyn Progress>,
) -> Result<(), Error>; ) -> Result<(), Error>;
@ -156,7 +157,7 @@ pub trait WalletSync {
/// [`BatchOperations::del_utxo`]: crate::database::BatchOperations::del_utxo /// [`BatchOperations::del_utxo`]: crate::database::BatchOperations::del_utxo
fn wallet_sync<D: BatchDatabase>( fn wallet_sync<D: BatchDatabase>(
&self, &self,
database: &mut D, database: &RefCell<D>,
progress_update: Box<dyn Progress>, progress_update: Box<dyn Progress>,
) -> Result<(), Error> { ) -> Result<(), Error> {
maybe_await!(self.wallet_setup(database, progress_update)) maybe_await!(self.wallet_setup(database, progress_update))
@ -377,7 +378,7 @@ impl<T: GetBlockHash> GetBlockHash for Arc<T> {
impl<T: WalletSync> WalletSync for Arc<T> { impl<T: WalletSync> WalletSync for Arc<T> {
fn wallet_setup<D: BatchDatabase>( fn wallet_setup<D: BatchDatabase>(
&self, &self,
database: &mut D, database: &RefCell<D>,
progress_update: Box<dyn Progress>, progress_update: Box<dyn Progress>,
) -> Result<(), Error> { ) -> Result<(), Error> {
maybe_await!(self.deref().wallet_setup(database, progress_update)) maybe_await!(self.deref().wallet_setup(database, progress_update))
@ -385,7 +386,7 @@ impl<T: WalletSync> WalletSync for Arc<T> {
fn wallet_sync<D: BatchDatabase>( fn wallet_sync<D: BatchDatabase>(
&self, &self,
database: &mut D, database: &RefCell<D>,
progress_update: Box<dyn Progress>, progress_update: Box<dyn Progress>,
) -> Result<(), Error> { ) -> Result<(), Error> {
maybe_await!(self.deref().wallet_sync(database, progress_update)) maybe_await!(self.deref().wallet_sync(database, progress_update))

View File

@ -49,8 +49,9 @@ use bitcoincore_rpc::Auth as RpcAuth;
use bitcoincore_rpc::{Client, RpcApi}; use bitcoincore_rpc::{Client, RpcApi};
use log::{debug, info}; use log::{debug, info};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use std::cell::RefCell;
use std::collections::{HashMap, HashSet}; use std::collections::{HashMap, HashSet};
use std::ops::Deref; use std::ops::{Deref, DerefMut};
use std::path::PathBuf; use std::path::PathBuf;
use std::thread; use std::thread;
use std::time::Duration; use std::time::Duration;
@ -192,10 +193,12 @@ impl GetBlockHash for RpcBlockchain {
} }
impl WalletSync for RpcBlockchain { impl WalletSync for RpcBlockchain {
fn wallet_setup<D>(&self, db: &mut D, prog: Box<dyn Progress>) -> Result<(), Error> fn wallet_setup<D>(&self, db: &RefCell<D>, prog: Box<dyn Progress>) -> Result<(), Error>
where where
D: BatchDatabase, D: BatchDatabase,
{ {
let mut db = db.borrow_mut();
let db = db.deref_mut();
let batch = DbState::new(db, &self.sync_params, &*prog)? let batch = DbState::new(db, &self.sync_params, &*prog)?
.sync_with_core(&self.client, self.is_descriptors)? .sync_with_core(&self.client, self.is_descriptors)?
.as_db_batch()?; .as_db_batch()?;

View File

@ -1197,7 +1197,7 @@ mod test {
.unwrap(); .unwrap();
assert_matches!(&policy.item, EcdsaSignature(PkOrF::Fingerprint(f)) if f == &fingerprint); assert_matches!(&policy.item, EcdsaSignature(PkOrF::Fingerprint(f)) if f == &fingerprint);
assert_matches!(&policy.contribution, Satisfaction::Complete {condition} if condition.csv == None && condition.timelock == None); assert_matches!(&policy.contribution, Satisfaction::Complete {condition} if condition.csv.is_none() && condition.timelock.is_none());
} }
// 2 pub keys descriptor, required 2 prv keys // 2 pub keys descriptor, required 2 prv keys
@ -1346,7 +1346,7 @@ mod test {
.unwrap(); .unwrap();
assert_matches!(policy.item, EcdsaSignature(PkOrF::Fingerprint(f)) if f == fingerprint); assert_matches!(policy.item, EcdsaSignature(PkOrF::Fingerprint(f)) if f == fingerprint);
assert_matches!(policy.contribution, Satisfaction::Complete {condition} if condition.csv == None && condition.timelock == None); assert_matches!(policy.contribution, Satisfaction::Complete {condition} if condition.csv.is_none() && condition.timelock.is_none());
} }
// single key, 1 prv and 1 pub key descriptor, required 1 prv keys // single key, 1 prv and 1 pub key descriptor, required 1 prv keys

View File

@ -17,7 +17,7 @@ use std::cell::RefCell;
use std::collections::HashMap; use std::collections::HashMap;
use std::collections::{BTreeMap, HashSet}; use std::collections::{BTreeMap, HashSet};
use std::fmt; use std::fmt;
use std::ops::{Deref, DerefMut}; use std::ops::Deref;
use std::str::FromStr; use std::str::FromStr;
use std::sync::Arc; use std::sync::Arc;
@ -1719,13 +1719,10 @@ where
let max_rounds = if has_wildcard { 100 } else { 1 }; let max_rounds = if has_wildcard { 100 } else { 1 };
for _ in 0..max_rounds { for _ in 0..max_rounds {
let sync_res = let sync_res = if run_setup {
if run_setup { maybe_await!(blockchain.wallet_setup(&self.database, new_progress()))
maybe_await!(blockchain
.wallet_setup(self.database.borrow_mut().deref_mut(), new_progress()))
} else { } else {
maybe_await!(blockchain maybe_await!(blockchain.wallet_sync(&self.database, new_progress()))
.wallet_sync(self.database.borrow_mut().deref_mut(), new_progress()))
}; };
// If the error is the special `MissingCachedScripts` error, we return the number of // If the error is the special `MissingCachedScripts` error, we return the number of