From 704cc0b217960fa28378610852548537d58c7454 Mon Sep 17 00:00:00 2001 From: LLFourn Date: Fri, 12 Feb 2021 10:39:12 +1100 Subject: [PATCH] Turn on rustfmt merge_imports and set edition = "2018" which I guess you are meant to do. --- examples/address_validator.rs | 17 +++---- examples/compact_filters_balance.rs | 12 ++--- examples/compiler.rs | 9 ++-- macros/src/lib.rs | 3 +- rustfmt.toml | 2 + src/blockchain/compact_filters/mod.rs | 27 ++++++---- src/blockchain/compact_filters/peer.rs | 36 +++++++------ src/blockchain/compact_filters/store.rs | 35 ++++++------- src/blockchain/compact_filters/sync.rs | 25 ++++----- src/blockchain/electrum.rs | 4 +- src/blockchain/esplora.rs | 23 +++++---- src/blockchain/mod.rs | 16 +++--- src/blockchain/utils.rs | 14 ++--- src/database/keyvalue.rs | 25 +++++---- src/database/memory.rs | 26 ++++++---- src/database/mod.rs | 10 ++-- src/descriptor/derived.rs | 17 ++++--- src/descriptor/dsl.rs | 23 +++++---- src/descriptor/mod.rs | 52 +++++++++++-------- src/descriptor/policy.rs | 60 ++++++++++++---------- src/descriptor/template.rs | 33 +++++++----- src/keys/bip39.rs | 3 +- src/keys/mod.rs | 31 +++++------ src/lib.rs | 8 +-- src/psbt/mod.rs | 3 +- src/types.rs | 6 ++- src/wallet/address_validator.rs | 3 +- src/wallet/coin_selection.rs | 15 +++--- src/wallet/export.rs | 17 ++++--- src/wallet/mod.rs | 68 ++++++++++++++----------- src/wallet/signer.rs | 51 ++++++++++--------- src/wallet/tx_builder.rs | 21 ++++---- testutils-macros/src/lib.rs | 3 +- testutils/src/lib.rs | 39 +++++++------- 34 files changed, 397 insertions(+), 340 deletions(-) create mode 100644 rustfmt.toml diff --git a/examples/address_validator.rs b/examples/address_validator.rs index 8730fb794..017ff767e 100644 --- a/examples/address_validator.rs +++ b/examples/address_validator.rs @@ -24,16 +24,15 @@ use std::sync::Arc; -use bdk::bitcoin; -use bdk::database::MemoryDatabase; -use bdk::descriptor::HDKeyPaths; -use bdk::wallet::address_validator::{AddressValidator, AddressValidatorError}; -use bdk::KeychainKind; -use bdk::Wallet; +use bdk::{ + bitcoin, + database::MemoryDatabase, + descriptor::HDKeyPaths, + wallet::address_validator::{AddressValidator, AddressValidatorError}, + KeychainKind, Wallet, +}; -use bitcoin::hashes::hex::FromHex; -use bitcoin::util::bip32::Fingerprint; -use bitcoin::{Network, Script}; +use bitcoin::{hashes::hex::FromHex, util::bip32::Fingerprint, Network, Script}; #[derive(Debug)] struct DummyValidator; diff --git a/examples/compact_filters_balance.rs b/examples/compact_filters_balance.rs index 4c8f38e2e..678b999bc 100644 --- a/examples/compact_filters_balance.rs +++ b/examples/compact_filters_balance.rs @@ -1,10 +1,10 @@ -use bdk::blockchain::compact_filters::*; -use bdk::blockchain::noop_progress; -use bdk::database::MemoryDatabase; -use bdk::*; +use bdk::{ + blockchain::{compact_filters::*, noop_progress}, + database::MemoryDatabase, + *, +}; use bitcoin::*; -use blockchain::compact_filters::CompactFiltersBlockchain; -use blockchain::compact_filters::CompactFiltersError; +use blockchain::compact_filters::{CompactFiltersBlockchain, CompactFiltersError}; use log::info; use std::sync::Arc; diff --git a/examples/compiler.rs b/examples/compiler.rs index 3b62147c2..e19ff6983 100644 --- a/examples/compiler.rs +++ b/examples/compiler.rs @@ -29,19 +29,16 @@ extern crate log; extern crate miniscript; extern crate serde_json; -use std::error::Error; -use std::str::FromStr; +use std::{error::Error, str::FromStr}; use log::info; use clap::{App, Arg}; use bitcoin::Network; -use miniscript::policy::Concrete; -use miniscript::Descriptor; +use miniscript::{policy::Concrete, Descriptor}; -use bdk::database::memory::MemoryDatabase; -use bdk::{KeychainKind, Wallet}; +use bdk::{database::memory::MemoryDatabase, KeychainKind, Wallet}; fn main() -> Result<(), Box> { env_logger::init_from_env( diff --git a/macros/src/lib.rs b/macros/src/lib.rs index d1cd53b07..78a5222ad 100644 --- a/macros/src/lib.rs +++ b/macros/src/lib.rs @@ -27,8 +27,7 @@ extern crate quote; use proc_macro::TokenStream; -use syn::spanned::Spanned; -use syn::{parse, ImplItemMethod, ItemImpl, ItemTrait, Token}; +use syn::{parse, spanned::Spanned, ImplItemMethod, ItemImpl, ItemTrait, Token}; fn add_async_trait(mut parsed: ItemTrait) -> TokenStream { let output = quote! { diff --git a/rustfmt.toml b/rustfmt.toml new file mode 100644 index 000000000..807b07b8c --- /dev/null +++ b/rustfmt.toml @@ -0,0 +1,2 @@ +edition = "2018" +merge_imports = true diff --git a/src/blockchain/compact_filters/mod.rs b/src/blockchain/compact_filters/mod.rs index 649c53dfa..353c682be 100644 --- a/src/blockchain/compact_filters/mod.rs +++ b/src/blockchain/compact_filters/mod.rs @@ -62,17 +62,20 @@ //! # Ok::<(), CompactFiltersError>(()) //! ``` -use std::collections::HashSet; -use std::fmt; -use std::path::Path; -use std::sync::atomic::{AtomicUsize, Ordering}; -use std::sync::{Arc, Mutex}; +use std::{ + collections::HashSet, + fmt, + path::Path, + sync::{ + atomic::{AtomicUsize, Ordering}, + Arc, Mutex, + }, +}; #[allow(unused_imports)] use log::{debug, error, info, trace}; -use bitcoin::network::message_blockdata::Inventory; -use bitcoin::{Network, OutPoint, Transaction, Txid}; +use bitcoin::{network::message_blockdata::Inventory, Network, OutPoint, Transaction, Txid}; use rocksdb::{Options, SliceTransform, DB}; @@ -81,10 +84,12 @@ mod store; mod sync; use super::{Blockchain, Capability, ConfigurableBlockchain, Progress}; -use crate::database::{BatchDatabase, BatchOperations, DatabaseUtils}; -use crate::error::Error; -use crate::types::{KeychainKind, TransactionDetails, UTXO}; -use crate::FeeRate; +use crate::{ + database::{BatchDatabase, BatchOperations, DatabaseUtils}, + error::Error, + types::{KeychainKind, TransactionDetails, UTXO}, + FeeRate, +}; use peer::*; use store::*; diff --git a/src/blockchain/compact_filters/peer.rs b/src/blockchain/compact_filters/peer.rs index 62fa2cb4a..99340684e 100644 --- a/src/blockchain/compact_filters/peer.rs +++ b/src/blockchain/compact_filters/peer.rs @@ -22,26 +22,32 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -use std::collections::HashMap; -use std::net::{TcpStream, ToSocketAddrs}; -use std::sync::{Arc, Condvar, Mutex, RwLock}; -use std::thread; -use std::time::{Duration, SystemTime, UNIX_EPOCH}; +use std::{ + collections::HashMap, + net::{TcpStream, ToSocketAddrs}, + sync::{Arc, Condvar, Mutex, RwLock}, + thread, + time::{Duration, SystemTime, UNIX_EPOCH}, +}; use socks::{Socks5Stream, ToTargetAddr}; use rand::{thread_rng, Rng}; -use bitcoin::consensus::Encodable; -use bitcoin::hash_types::BlockHash; -use bitcoin::network::constants::ServiceFlags; -use bitcoin::network::message::{NetworkMessage, RawNetworkMessage}; -use bitcoin::network::message_blockdata::*; -use bitcoin::network::message_filter::*; -use bitcoin::network::message_network::VersionMessage; -use bitcoin::network::stream_reader::StreamReader; -use bitcoin::network::Address; -use bitcoin::{Block, Network, Transaction, Txid, Wtxid}; +use bitcoin::{ + consensus::Encodable, + hash_types::BlockHash, + network::{ + constants::ServiceFlags, + message::{NetworkMessage, RawNetworkMessage}, + message_blockdata::*, + message_filter::*, + message_network::VersionMessage, + stream_reader::StreamReader, + Address, + }, + Block, Network, Transaction, Txid, Wtxid, +}; use super::CompactFiltersError; diff --git a/src/blockchain/compact_filters/store.rs b/src/blockchain/compact_filters/store.rs index 5e278f249..6121091ab 100644 --- a/src/blockchain/compact_filters/store.rs +++ b/src/blockchain/compact_filters/store.rs @@ -22,29 +22,26 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -use std::convert::TryInto; -use std::fmt; -use std::io::{Read, Write}; -use std::marker::PhantomData; -use std::ops::Deref; -use std::sync::Arc; -use std::sync::RwLock; +use std::{ + convert::TryInto, + fmt, + io::{Read, Write}, + marker::PhantomData, + ops::Deref, + sync::{Arc, RwLock}, +}; -use rand::distributions::Alphanumeric; -use rand::{thread_rng, Rng}; +use rand::{distributions::Alphanumeric, thread_rng, Rng}; use rocksdb::{Direction, IteratorMode, ReadOptions, WriteBatch, DB}; -use bitcoin::consensus::{deserialize, encode::VarInt, serialize, Decodable, Encodable}; -use bitcoin::hash_types::{FilterHash, FilterHeader}; -use bitcoin::hashes::hex::FromHex; -use bitcoin::hashes::Hash; -use bitcoin::util::bip158::BlockFilter; -use bitcoin::util::uint::Uint256; -use bitcoin::Block; -use bitcoin::BlockHash; -use bitcoin::BlockHeader; -use bitcoin::Network; +use bitcoin::{ + consensus::{deserialize, encode::VarInt, serialize, Decodable, Encodable}, + hash_types::{FilterHash, FilterHeader}, + hashes::{hex::FromHex, Hash}, + util::{bip158::BlockFilter, uint::Uint256}, + Block, BlockHash, BlockHeader, Network, +}; use super::CompactFiltersError; diff --git a/src/blockchain/compact_filters/sync.rs b/src/blockchain/compact_filters/sync.rs index 5b8a3aaac..e847ee101 100644 --- a/src/blockchain/compact_filters/sync.rs +++ b/src/blockchain/compact_filters/sync.rs @@ -22,18 +22,19 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -use std::collections::{BTreeMap, HashMap, VecDeque}; -use std::sync::{Arc, Mutex}; -use std::time::Duration; - -use bitcoin::hash_types::{BlockHash, FilterHeader}; -use bitcoin::network::message::NetworkMessage; -use bitcoin::network::message_blockdata::GetHeadersMessage; -use bitcoin::util::bip158::BlockFilter; - -use super::peer::*; -use super::store::*; -use super::CompactFiltersError; +use std::{ + collections::{BTreeMap, HashMap, VecDeque}, + sync::{Arc, Mutex}, + time::Duration, +}; + +use bitcoin::{ + hash_types::{BlockHash, FilterHeader}, + network::{message::NetworkMessage, message_blockdata::GetHeadersMessage}, + util::bip158::BlockFilter, +}; + +use super::{peer::*, store::*, CompactFiltersError}; use crate::error::Error; pub(crate) const BURIED_CONFIRMATIONS: usize = 100; diff --git a/src/blockchain/electrum.rs b/src/blockchain/electrum.rs index 65af45fc8..a374cf03a 100644 --- a/src/blockchain/electrum.rs +++ b/src/blockchain/electrum.rs @@ -48,9 +48,7 @@ use electrum_client::{Client, ConfigBuilder, ElectrumApi, Socks5Config}; use self::utils::{ELSGetHistoryRes, ElectrumLikeSync}; use super::*; -use crate::database::BatchDatabase; -use crate::error::Error; -use crate::FeeRate; +use crate::{database::BatchDatabase, error::Error, FeeRate}; /// Wrapper over an Electrum Client that implements the required blockchain traits /// diff --git a/src/blockchain/esplora.rs b/src/blockchain/esplora.rs index 45523bbbd..98f6d7b9b 100644 --- a/src/blockchain/esplora.rs +++ b/src/blockchain/esplora.rs @@ -35,8 +35,10 @@ //! # Ok::<(), bdk::Error>(()) //! ``` -use std::collections::{HashMap, HashSet}; -use std::fmt; +use std::{ + collections::{HashMap, HashSet}, + fmt, +}; use futures::stream::{self, FuturesOrdered, StreamExt, TryStreamExt}; @@ -47,17 +49,18 @@ use serde::Deserialize; use reqwest::{Client, StatusCode}; -use bitcoin::consensus::{self, deserialize, serialize}; -use bitcoin::hashes::hex::{FromHex, ToHex}; -use bitcoin::hashes::{sha256, Hash}; -use bitcoin::{BlockHash, BlockHeader, Script, Transaction, Txid}; +use bitcoin::{ + consensus::{self, deserialize, serialize}, + hashes::{ + hex::{FromHex, ToHex}, + sha256, Hash, + }, + BlockHash, BlockHeader, Script, Transaction, Txid, +}; use self::utils::{ELSGetHistoryRes, ElectrumLikeSync}; use super::*; -use crate::database::BatchDatabase; -use crate::error::Error; -use crate::wallet::utils::ChunksIterator; -use crate::FeeRate; +use crate::{database::BatchDatabase, error::Error, wallet::utils::ChunksIterator, FeeRate}; const DEFAULT_CONCURRENT_REQUESTS: u8 = 4; diff --git a/src/blockchain/mod.rs b/src/blockchain/mod.rs index 25c6055b9..61e55da28 100644 --- a/src/blockchain/mod.rs +++ b/src/blockchain/mod.rs @@ -29,16 +29,18 @@ //! [Compact Filters/Neutrino](crate::blockchain::compact_filters), along with a generalized trait //! [`Blockchain`] that can be implemented to build customized backends. -use std::collections::HashSet; -use std::ops::Deref; -use std::sync::mpsc::{channel, Receiver, Sender}; -use std::sync::Arc; +use std::{ + collections::HashSet, + ops::Deref, + sync::{ + mpsc::{channel, Receiver, Sender}, + Arc, + }, +}; use bitcoin::{Transaction, Txid}; -use crate::database::BatchDatabase; -use crate::error::Error; -use crate::FeeRate; +use crate::{database::BatchDatabase, error::Error, FeeRate}; #[cfg(any(feature = "electrum", feature = "esplora"))] pub(crate) mod utils; diff --git a/src/blockchain/utils.rs b/src/blockchain/utils.rs index 2e32ed1b4..b5828cc75 100644 --- a/src/blockchain/utils.rs +++ b/src/blockchain/utils.rs @@ -26,17 +26,17 @@ use std::collections::{HashMap, HashSet}; #[allow(unused_imports)] use log::{debug, error, info, trace}; -use rand::seq::SliceRandom; -use rand::thread_rng; +use rand::{seq::SliceRandom, thread_rng}; use bitcoin::{BlockHeader, OutPoint, Script, Transaction, Txid}; use super::*; -use crate::database::{BatchDatabase, BatchOperations, DatabaseUtils}; -use crate::error::Error; -use crate::types::{KeychainKind, TransactionDetails, UTXO}; -use crate::wallet::time::Instant; -use crate::wallet::utils::ChunksIterator; +use crate::{ + database::{BatchDatabase, BatchOperations, DatabaseUtils}, + error::Error, + types::{KeychainKind, TransactionDetails, UTXO}, + wallet::{time::Instant, utils::ChunksIterator}, +}; #[derive(Debug)] pub struct ELSGetHistoryRes { diff --git a/src/database/keyvalue.rs b/src/database/keyvalue.rs index b82349785..2d42ca8fa 100644 --- a/src/database/keyvalue.rs +++ b/src/database/keyvalue.rs @@ -26,14 +26,17 @@ use std::convert::TryInto; use sled::{Batch, Tree}; -use bitcoin::consensus::encode::{deserialize, serialize}; -use bitcoin::hash_types::Txid; -use bitcoin::{OutPoint, Script, Transaction}; - -use crate::database::memory::MapKey; -use crate::database::{BatchDatabase, BatchOperations, Database}; -use crate::error::Error; -use crate::types::*; +use bitcoin::{ + consensus::encode::{deserialize, serialize}, + hash_types::Txid, + OutPoint, Script, Transaction, +}; + +use crate::{ + database::{memory::MapKey, BatchDatabase, BatchOperations, Database}, + error::Error, + types::*, +}; macro_rules! impl_batch_operations { ( { $($after_insert:tt)* }, $process_delete:ident ) => { @@ -396,8 +399,10 @@ impl BatchDatabase for Tree { #[cfg(test)] mod test { - use std::sync::{Arc, Condvar, Mutex, Once}; - use std::time::{SystemTime, UNIX_EPOCH}; + use std::{ + sync::{Arc, Condvar, Mutex, Once}, + time::{SystemTime, UNIX_EPOCH}, + }; use sled::{Db, Tree}; diff --git a/src/database/memory.rs b/src/database/memory.rs index 84ecf30a6..4213807d8 100644 --- a/src/database/memory.rs +++ b/src/database/memory.rs @@ -27,16 +27,22 @@ //! This module defines an in-memory database type called [`MemoryDatabase`] that is based on a //! [`BTreeMap`]. -use std::collections::BTreeMap; -use std::ops::Bound::{Excluded, Included}; - -use bitcoin::consensus::encode::{deserialize, serialize}; -use bitcoin::hash_types::Txid; -use bitcoin::{OutPoint, Script, Transaction}; - -use crate::database::{BatchDatabase, BatchOperations, ConfigurableDatabase, Database}; -use crate::error::Error; -use crate::types::*; +use std::{ + collections::BTreeMap, + ops::Bound::{Excluded, Included}, +}; + +use bitcoin::{ + consensus::encode::{deserialize, serialize}, + hash_types::Txid, + OutPoint, Script, Transaction, +}; + +use crate::{ + database::{BatchDatabase, BatchOperations, ConfigurableDatabase, Database}, + error::Error, + types::*, +}; // path -> script p{i,e} -> script // script -> path s