From 49a08bd5b6b6705bff9b8216d6519ec2f1d78e9e Mon Sep 17 00:00:00 2001 From: "Tobin C. Harding" Date: Thu, 28 Apr 2022 11:14:20 +1000 Subject: [PATCH] Configure imports_granularity Configure `imports_granularity = "Module"`. The benefit of this option is that it increases uniformity in the code base over the default "Preserve" and also, from my personal experience, it tends to reduce the noise in diffs from adding/removing imports. --- examples/parse.rs | 6 +++--- examples/sign_multisig.rs | 3 +-- examples/verify_tx.rs | 3 +-- rustfmt.toml | 2 +- src/descriptor/bare.rs | 12 ++++++------ src/descriptor/key.rs | 19 ++++++++----------- src/descriptor/mod.rs | 18 +++++++----------- src/descriptor/pretaproot.rs | 15 ++++++--------- src/descriptor/segwitv0.rs | 9 ++++----- src/descriptor/sh.rs | 17 ++++++++--------- src/descriptor/sortedmulti.rs | 17 +++++++++-------- src/descriptor/tr.rs | 12 ++++++------ src/expression.rs | 4 +--- src/interpreter/error.rs | 3 ++- src/interpreter/inner.rs | 3 +-- src/interpreter/mod.rs | 8 ++------ src/lib.rs | 3 ++- src/miniscript/analyzable.rs | 3 +-- src/miniscript/astelem.rs | 6 ++---- src/miniscript/context.rs | 3 +-- src/miniscript/decode.rs | 8 ++------ src/miniscript/mod.rs | 14 ++++++-------- src/miniscript/ms_tests.rs | 3 ++- src/miniscript/satisfy.rs | 5 +---- src/miniscript/types/extra_props.rs | 4 +--- src/miniscript/types/mod.rs | 6 +++--- src/policy/compiler.rs | 3 +-- src/policy/concrete.rs | 3 +-- src/policy/mod.rs | 11 ++++------- src/policy/semantic.rs | 4 +--- src/psbt/finalizer.rs | 9 ++------- src/psbt/mod.rs | 11 +++-------- 32 files changed, 99 insertions(+), 148 deletions(-) diff --git a/examples/parse.rs b/examples/parse.rs index 439a7c572..103574725 100644 --- a/examples/parse.rs +++ b/examples/parse.rs @@ -16,9 +16,9 @@ use std::str::FromStr; -use bitcoin; -use miniscript; -use miniscript::{descriptor::DescriptorType, Descriptor, DescriptorTrait}; +use miniscript::descriptor::DescriptorType; +use miniscript::{Descriptor, DescriptorTrait}; +use {bitcoin, miniscript}; fn main() { let my_descriptor = miniscript::Descriptor::::from_str( diff --git a/examples/sign_multisig.rs b/examples/sign_multisig.rs index bac191df3..20e53721a 100644 --- a/examples/sign_multisig.rs +++ b/examples/sign_multisig.rs @@ -17,11 +17,10 @@ use std::collections::HashMap; use std::str::FromStr; -use bitcoin; use bitcoin::blockdata::witness::Witness; use bitcoin::secp256k1; // secp256k1 re-exported from rust-bitcoin -use miniscript; use miniscript::DescriptorTrait; +use {bitcoin, miniscript}; fn main() { // Avoid repeatedly typing a pretty-common descriptor type diff --git a/examples/verify_tx.rs b/examples/verify_tx.rs index c9f753ac6..3c6aff50a 100644 --- a/examples/verify_tx.rs +++ b/examples/verify_tx.rs @@ -16,12 +16,11 @@ use std::str::FromStr; -use bitcoin; use bitcoin::consensus::Decodable; use bitcoin::util::sighash; use bitcoin::{secp256k1, TxOut}; // secp256k1 re-exported from rust-bitcoin -use miniscript; use miniscript::interpreter::KeySigPair; +use {bitcoin, miniscript}; fn main() { // tx `f27eba163c38ad3f34971198687a3f1882b7ec818599ffe469a8440d82261c98` diff --git a/rustfmt.toml b/rustfmt.toml index f61bac29a..f3bff64fa 100644 --- a/rustfmt.toml +++ b/rustfmt.toml @@ -27,7 +27,7 @@ fn_single_line = false where_single_line = false imports_indent = "Block" imports_layout = "Mixed" -imports_granularity = "Preserve" +imports_granularity = "Module" # Default "Preserve" group_imports = "StdExternalCrate" # Default "Preserve" reorder_imports = true reorder_modules = true diff --git a/src/descriptor/bare.rs b/src/descriptor/bare.rs index c8969b61a..045de5c48 100644 --- a/src/descriptor/bare.rs +++ b/src/descriptor/bare.rs @@ -18,14 +18,14 @@ //! Also includes pk, and pkh descriptors //! -use std::{fmt, str::FromStr}; +use std::fmt; +use std::str::FromStr; -use bitcoin::{self, blockdata::script, Script}; +use bitcoin::blockdata::script; +use bitcoin::{self, Script}; -use super::{ - checksum::{desc_checksum, verify_checksum}, - DescriptorTrait, -}; +use super::checksum::{desc_checksum, verify_checksum}; +use super::DescriptorTrait; use crate::expression::{self, FromTree}; use crate::miniscript::context::ScriptContext; use crate::policy::{semantic, Liftable}; diff --git a/src/descriptor/key.rs b/src/descriptor/key.rs index 5866f29b1..e3c5d6daa 100644 --- a/src/descriptor/key.rs +++ b/src/descriptor/key.rs @@ -1,14 +1,11 @@ -use std::{error, fmt, str::FromStr}; - -use bitcoin::{ - self, - hashes::Hash, - hashes::{hex::FromHex, HashEngine}, - secp256k1, - secp256k1::{Secp256k1, Signing}, - util::bip32, - XOnlyPublicKey, XpubIdentifier, -}; +use std::str::FromStr; +use std::{error, fmt}; + +use bitcoin::hashes::hex::FromHex; +use bitcoin::hashes::{Hash, HashEngine}; +use bitcoin::secp256k1::{Secp256k1, Signing}; +use bitcoin::util::bip32; +use bitcoin::{self, secp256k1, XOnlyPublicKey, XpubIdentifier}; use crate::{MiniscriptKey, ToPublicKey}; diff --git a/src/descriptor/mod.rs b/src/descriptor/mod.rs index ffd1e0679..3a3d26b7a 100644 --- a/src/descriptor/mod.rs +++ b/src/descriptor/mod.rs @@ -23,24 +23,21 @@ //! these with BIP32 paths, pay-to-contract instructions, etc. //! +use std::collections::HashMap; +use std::fmt; use std::ops::Range; -use std::{collections::HashMap, sync::Arc}; -use std::{ - fmt, - str::{self, FromStr}, -}; +use std::str::{self, FromStr}; +use std::sync::Arc; use bitcoin::blockdata::witness::Witness; use bitcoin::util::address::WitnessVersion; use bitcoin::{self, secp256k1, Script}; use self::checksum::verify_checksum; -use crate::expression; -use crate::miniscript; use crate::miniscript::{Legacy, Miniscript, Segwitv0}; use crate::{ - BareCtx, Error, ForEach, ForEachKey, MiniscriptKey, Satisfier, ToPublicKey, TranslatePk, - TranslatePk2, + expression, miniscript, BareCtx, Error, ForEach, ForEachKey, MiniscriptKey, Satisfier, + ToPublicKey, TranslatePk, TranslatePk2, }; // Directly export from lib.rs, exporting the trait here causes conflicts in this file @@ -884,10 +881,9 @@ mod tests { use super::*; use crate::descriptor::key::Wildcard; use crate::descriptor::{DescriptorPublicKey, DescriptorSecretKey, DescriptorXKey, SinglePub}; - use crate::hex_script; #[cfg(feature = "compiler")] use crate::policy; - use crate::{Descriptor, DummyKey, Error, Miniscript, Satisfier, TranslatePk2}; + use crate::{hex_script, Descriptor, DummyKey, Error, Miniscript, Satisfier, TranslatePk2}; type StdDescriptor = Descriptor; const TEST_PK: &'static str = diff --git a/src/descriptor/pretaproot.rs b/src/descriptor/pretaproot.rs index f866b5b81..2e7925921 100644 --- a/src/descriptor/pretaproot.rs +++ b/src/descriptor/pretaproot.rs @@ -1,11 +1,10 @@ -use std::{ - fmt, - str::{self, FromStr}, -}; +use std::fmt; +use std::str::{self, FromStr}; use bitcoin::{self, Script}; -use super::{checksum::verify_checksum, Bare, Pkh, Sh, Wpkh, Wsh}; +use super::checksum::verify_checksum; +use super::{Bare, Pkh, Sh, Wpkh, Wsh}; use crate::{expression, DescriptorTrait, Error, MiniscriptKey, Satisfier, ToPublicKey}; /// Script descriptor @@ -242,10 +241,8 @@ pub(crate) mod traits { use bitcoin::Script; use super::PreTaprootDescriptor; - use crate::{ - descriptor::{Pkh, Sh, Wpkh, Wsh}, - DescriptorTrait, MiniscriptKey, ToPublicKey, - }; + use crate::descriptor::{Pkh, Sh, Wpkh, Wsh}; + use crate::{DescriptorTrait, MiniscriptKey, ToPublicKey}; /// A general trait for Pre taproot bitcoin descriptor. /// Similar to [`DescriptorTrait`], but `explicit_script` and `script_code` methods cannot fail diff --git a/src/descriptor/segwitv0.rs b/src/descriptor/segwitv0.rs index 0ba78ee7b..5afe2e87f 100644 --- a/src/descriptor/segwitv0.rs +++ b/src/descriptor/segwitv0.rs @@ -16,14 +16,13 @@ //! Implementation of Segwit Descriptors. Contains the implementation //! of wsh, wpkh and sortedmulti inside wsh. -use std::{fmt, str::FromStr}; +use std::fmt; +use std::str::FromStr; use bitcoin::{self, Script}; -use super::{ - checksum::{desc_checksum, verify_checksum}, - DescriptorTrait, SortedMultiVec, -}; +use super::checksum::{desc_checksum, verify_checksum}; +use super::{DescriptorTrait, SortedMultiVec}; use crate::expression::{self, FromTree}; use crate::miniscript::context::{ScriptContext, ScriptContextError}; use crate::policy::{semantic, Liftable}; diff --git a/src/descriptor/sh.rs b/src/descriptor/sh.rs index 7bafd1a04..9e94cc20d 100644 --- a/src/descriptor/sh.rs +++ b/src/descriptor/sh.rs @@ -18,22 +18,21 @@ //! sh(miniscript), and sh(wpkh) //! -use std::{fmt, str::FromStr}; +use std::fmt; +use std::str::FromStr; -use bitcoin::{self, blockdata::script, Script}; +use bitcoin::blockdata::script; +use bitcoin::{self, Script}; -use super::{ - checksum::{desc_checksum, verify_checksum}, - DescriptorTrait, SortedMultiVec, Wpkh, Wsh, -}; +use super::checksum::{desc_checksum, verify_checksum}; +use super::{DescriptorTrait, SortedMultiVec, Wpkh, Wsh}; use crate::expression::{self, FromTree}; use crate::miniscript::context::ScriptContext; use crate::policy::{semantic, Liftable}; -use crate::push_opcode_size; use crate::util::{varint_len, witness_to_scriptsig}; use crate::{ - Error, ForEach, ForEachKey, Legacy, Miniscript, MiniscriptKey, Satisfier, Segwitv0, - ToPublicKey, TranslatePk, + push_opcode_size, Error, ForEach, ForEachKey, Legacy, Miniscript, MiniscriptKey, Satisfier, + Segwitv0, ToPublicKey, TranslatePk, }; /// A Legacy p2sh Descriptor diff --git a/src/descriptor/sortedmulti.rs b/src/descriptor/sortedmulti.rs index d62b838a7..a022dac05 100644 --- a/src/descriptor/sortedmulti.rs +++ b/src/descriptor/sortedmulti.rs @@ -16,18 +16,19 @@ //! Implementation of sorted multi primitive for descriptors //! -use std::{fmt, marker::PhantomData, str::FromStr}; +use std::fmt; +use std::marker::PhantomData; +use std::str::FromStr; use bitcoin::blockdata::script; -use crate::expression; -use crate::miniscript::{ - self, context::ScriptContext, decode::Terminal, limits::MAX_PUBKEYS_PER_MULTISIG, -}; -use crate::policy; -use crate::script_num_size; +use crate::miniscript; +use crate::miniscript::context::ScriptContext; +use crate::miniscript::decode::Terminal; +use crate::miniscript::limits::MAX_PUBKEYS_PER_MULTISIG; use crate::{ - errstr, Error, ForEach, ForEachKey, Miniscript, MiniscriptKey, Satisfier, ToPublicKey, + errstr, expression, policy, script_num_size, Error, ForEach, ForEachKey, Miniscript, + MiniscriptKey, Satisfier, ToPublicKey, }; /// Contents of a "sortedmulti" descriptor diff --git a/src/descriptor/tr.rs b/src/descriptor/tr.rs index acedebb8c..2661bae26 100644 --- a/src/descriptor/tr.rs +++ b/src/descriptor/tr.rs @@ -1,9 +1,9 @@ // Tapscript use std::cmp::{self, max}; -use std::hash; +use std::str::FromStr; use std::sync::{Arc, Mutex}; -use std::{fmt, str::FromStr}; +use std::{fmt, hash}; use bitcoin::blockdata::opcodes; use bitcoin::util::taproot::{ @@ -13,15 +13,15 @@ use bitcoin::util::taproot::{ use bitcoin::{self, secp256k1, Script}; use super::checksum::{desc_checksum, verify_checksum}; -use crate::errstr; use crate::expression::{self, FromTree}; use crate::miniscript::Miniscript; use crate::policy::semantic::Policy; use crate::policy::Liftable; use crate::util::{varint_len, witness_size}; -use crate::Tap; -use crate::{DescriptorTrait, ForEach, ForEachKey, Satisfier, ToPublicKey, TranslatePk}; -use crate::{Error, MiniscriptKey}; +use crate::{ + errstr, DescriptorTrait, Error, ForEach, ForEachKey, MiniscriptKey, Satisfier, Tap, + ToPublicKey, TranslatePk, +}; /// A Taproot Tree representation. // Hidden leaves are not yet supported in descriptor spec. Conceptually, it should diff --git a/src/expression.rs b/src/expression.rs index 0271bd093..49ebe9e23 100644 --- a/src/expression.rs +++ b/src/expression.rs @@ -17,9 +17,7 @@ use std::str::FromStr; -use crate::errstr; -use crate::Error; -use crate::MAX_RECURSION_DEPTH; +use crate::{errstr, Error, MAX_RECURSION_DEPTH}; #[derive(Debug)] /// A token of the form `x(...)` or `x` diff --git a/src/interpreter/error.rs b/src/interpreter/error.rs index 2c24069ad..b9041809f 100644 --- a/src/interpreter/error.rs +++ b/src/interpreter/error.rs @@ -14,7 +14,8 @@ use std::{error, fmt}; -use bitcoin::hashes::{hash160, hex::ToHex}; +use bitcoin::hashes::hash160; +use bitcoin::hashes::hex::ToHex; use bitcoin::util::taproot; use bitcoin::{self, secp256k1}; diff --git a/src/interpreter/inner.rs b/src/interpreter/inner.rs index 21815e636..cb720f873 100644 --- a/src/interpreter/inner.rs +++ b/src/interpreter/inner.rs @@ -19,8 +19,7 @@ use bitcoin::util::taproot::{ControlBlock, TAPROOT_ANNEX_PREFIX}; use super::{stack, BitcoinKey, Error, Stack, TypedHash160}; use crate::miniscript::context::{NoChecks, ScriptContext}; -use crate::{BareCtx, Legacy, Segwitv0, Tap}; -use crate::{Miniscript, MiniscriptKey}; +use crate::{BareCtx, Legacy, Miniscript, MiniscriptKey, Segwitv0, Tap}; /// Attempts to parse a slice as a Bitcoin public key, checking compressedness /// if asked to, but otherwise dropping it diff --git a/src/interpreter/mod.rs b/src/interpreter/mod.rs index 5e33b91c2..8f1214150 100644 --- a/src/interpreter/mod.rs +++ b/src/interpreter/mod.rs @@ -30,9 +30,7 @@ use bitcoin::{self, secp256k1, TxOut}; use crate::miniscript::context::NoChecks; use crate::miniscript::ScriptContext; -use crate::Miniscript; -use crate::Terminal; -use crate::{Descriptor, ToPublicKey}; +use crate::{Descriptor, Miniscript, Terminal, ToPublicKey}; mod error; mod inner; @@ -1037,9 +1035,7 @@ mod tests { use super::inner::ToNoChecks; use super::*; use crate::miniscript::context::NoChecks; - use crate::Miniscript; - use crate::MiniscriptKey; - use crate::ToPublicKey; + use crate::{Miniscript, MiniscriptKey, ToPublicKey}; fn setup_keys_sigs( n: usize, diff --git a/src/lib.rs b/src/lib.rs index fd3b9d7b8..78351068d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -122,7 +122,8 @@ use std::{error, fmt, hash, str}; use bitcoin::blockdata::{opcodes, script}; use bitcoin::hashes::{hash160, sha256, Hash}; -pub use crate::descriptor::pretaproot::{traits::PreTaprootDescriptorTrait, PreTaprootDescriptor}; +pub use crate::descriptor::pretaproot::traits::PreTaprootDescriptorTrait; +pub use crate::descriptor::pretaproot::PreTaprootDescriptor; pub use crate::descriptor::{Descriptor, DescriptorPublicKey, DescriptorTrait}; pub use crate::interpreter::Interpreter; pub use crate::miniscript::context::{BareCtx, Legacy, ScriptContext, Segwitv0, Tap}; diff --git a/src/miniscript/analyzable.rs b/src/miniscript/analyzable.rs index 03e40f0de..161cfb54c 100644 --- a/src/miniscript/analyzable.rs +++ b/src/miniscript/analyzable.rs @@ -20,9 +20,8 @@ use std::collections::HashSet; use std::fmt; -use crate::error; use crate::miniscript::iter::PkPkh; -use crate::{Miniscript, MiniscriptKey, ScriptContext}; +use crate::{error, Miniscript, MiniscriptKey, ScriptContext}; /// Possible reasons Miniscript guarantees can fail /// We currently mark Miniscript as Non-Analyzable if /// 1. It is unsafe(does not require a digital signature to spend it) diff --git a/src/miniscript/astelem.rs b/src/miniscript/astelem.rs index 515e81cdf..0d43f9928 100644 --- a/src/miniscript/astelem.rs +++ b/src/miniscript/astelem.rs @@ -27,15 +27,13 @@ use bitcoin::blockdata::{opcodes, script}; use bitcoin::hashes::hex::FromHex; use bitcoin::hashes::{hash160, ripemd160, sha256, sha256d, Hash}; -use crate::errstr; -use crate::expression; use crate::miniscript::context::SigType; use crate::miniscript::types::{self, Property}; use crate::miniscript::ScriptContext; -use crate::script_num_size; use crate::util::MsKeyBuilder; use crate::{ - Error, ForEach, ForEachKey, Miniscript, MiniscriptKey, Terminal, ToPublicKey, TranslatePk, + errstr, expression, script_num_size, Error, ForEach, ForEachKey, Miniscript, MiniscriptKey, + Terminal, ToPublicKey, TranslatePk, }; impl Terminal { diff --git a/src/miniscript/context.rs b/src/miniscript/context.rs index ea78a6952..72dc503e4 100644 --- a/src/miniscript/context.rs +++ b/src/miniscript/context.rs @@ -25,8 +25,7 @@ use crate::miniscript::limits::{ }; use crate::miniscript::types; use crate::util::witness_to_scriptsig; -use crate::Error; -use crate::{Miniscript, MiniscriptKey, Terminal}; +use crate::{Error, Miniscript, MiniscriptKey, Terminal}; /// Error for Script Context #[derive(Clone, PartialEq, Eq, Debug)] diff --git a/src/miniscript/decode.rs b/src/miniscript/decode.rs index 5ab28053b..a63401cf2 100644 --- a/src/miniscript/decode.rs +++ b/src/miniscript/decode.rs @@ -27,13 +27,9 @@ use bitcoin::hashes::{hash160, ripemd160, sha256, sha256d, Hash}; use crate::miniscript::lex::{Token as Tk, TokenIter}; use crate::miniscript::limits::MAX_PUBKEYS_PER_MULTISIG; use crate::miniscript::types::extra_props::ExtData; -use crate::miniscript::types::Property; -use crate::miniscript::types::Type; +use crate::miniscript::types::{Property, Type}; use crate::miniscript::ScriptContext; -use crate::Error; -use crate::MiniscriptKey; -use crate::ToPublicKey; -use crate::{bitcoin, Miniscript}; +use crate::{bitcoin, Error, Miniscript, MiniscriptKey, ToPublicKey}; fn return_none(_: usize) -> Option { None diff --git a/src/miniscript/mod.rs b/src/miniscript/mod.rs index 42267ab80..3ade842d8 100644 --- a/src/miniscript/mod.rs +++ b/src/miniscript/mod.rs @@ -51,8 +51,7 @@ pub use crate::miniscript::context::ScriptContext; use crate::miniscript::decode::Terminal; use crate::miniscript::types::extra_props::ExtData; use crate::miniscript::types::Type; -use crate::MiniscriptKey; -use crate::{expression, Error, ForEach, ForEachKey, ToPublicKey, TranslatePk}; +use crate::{expression, Error, ForEach, ForEachKey, MiniscriptKey, ToPublicKey, TranslatePk}; #[cfg(test)] mod ms_tests; @@ -473,15 +472,14 @@ mod tests { use bitcoin::util::taproot::TapLeafHash; use bitcoin::{self, secp256k1}; - use super::{Miniscript, ScriptContext}; - use super::{Segwitv0, Tap}; - use crate::hex_script; + use super::{Miniscript, ScriptContext, Segwitv0, Tap}; use crate::miniscript::types::{self, ExtData, Property, Type}; use crate::miniscript::Terminal; use crate::policy::Liftable; - use crate::TranslatePk2; - use crate::{DummyKey, DummyKeyHash, MiniscriptKey, TranslatePk, TranslatePk1}; - use crate::{Satisfier, ToPublicKey}; + use crate::{ + hex_script, DummyKey, DummyKeyHash, MiniscriptKey, Satisfier, ToPublicKey, TranslatePk, + TranslatePk1, TranslatePk2, + }; type Segwitv0Script = Miniscript; type Tapscript = Miniscript; diff --git a/src/miniscript/ms_tests.rs b/src/miniscript/ms_tests.rs index ee09fc424..ac456aaf4 100644 --- a/src/miniscript/ms_tests.rs +++ b/src/miniscript/ms_tests.rs @@ -20,7 +20,8 @@ mod tests { use std::fmt; - use crate::{miniscript::types, Miniscript, Segwitv0}; + use crate::miniscript::types; + use crate::{Miniscript, Segwitv0}; struct TestType(types::Type); diff --git a/src/miniscript/satisfy.rs b/src/miniscript/satisfy.rs index c0d29e1cd..b82010054 100644 --- a/src/miniscript/satisfy.rs +++ b/src/miniscript/satisfy.rs @@ -31,10 +31,7 @@ use crate::miniscript::limits::{ HEIGHT_TIME_THRESHOLD, SEQUENCE_LOCKTIME_DISABLE_FLAG, SEQUENCE_LOCKTIME_TYPE_FLAG, }; use crate::util::witness_size; -use crate::Miniscript; -use crate::ScriptContext; -use crate::Terminal; -use crate::{MiniscriptKey, ToPublicKey}; +use crate::{Miniscript, MiniscriptKey, ScriptContext, Terminal, ToPublicKey}; /// Type alias for 32 byte Preimage. pub type Preimage32 = [u8; 32]; diff --git a/src/miniscript/types/extra_props.rs b/src/miniscript/types/extra_props.rs index 02c0187d1..bd7b51840 100644 --- a/src/miniscript/types/extra_props.rs +++ b/src/miniscript/types/extra_props.rs @@ -8,9 +8,7 @@ use super::{Error, ErrorKind, Property, ScriptContext}; use crate::miniscript::limits::{ HEIGHT_TIME_THRESHOLD, SEQUENCE_LOCKTIME_DISABLE_FLAG, SEQUENCE_LOCKTIME_TYPE_FLAG, }; -use crate::script_num_size; -use crate::MiniscriptKey; -use crate::Terminal; +use crate::{script_num_size, MiniscriptKey, Terminal}; /// Helper struct Whether any satisfaction of this fragment contains any timelocks #[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Debug, Hash)] diff --git a/src/miniscript/types/mod.rs b/src/miniscript/types/mod.rs index ffc88b5fc..304cff302 100644 --- a/src/miniscript/types/mod.rs +++ b/src/miniscript/types/mod.rs @@ -25,9 +25,9 @@ use std::{error, fmt}; pub use self::correctness::{Base, Correctness, Input}; pub use self::extra_props::ExtData; pub use self::malleability::{Dissat, Malleability}; -use super::{limits::SEQUENCE_LOCKTIME_DISABLE_FLAG, ScriptContext}; -use crate::MiniscriptKey; -use crate::Terminal; +use super::limits::SEQUENCE_LOCKTIME_DISABLE_FLAG; +use super::ScriptContext; +use crate::{MiniscriptKey, Terminal}; /// None-returning function to help type inference when we need a /// closure that simply returns `None` diff --git a/src/policy/compiler.rs b/src/policy/compiler.rs index a9c2bffc3..9a7b988d0 100644 --- a/src/policy/compiler.rs +++ b/src/policy/compiler.rs @@ -20,10 +20,9 @@ use std::collections::vec_deque::VecDeque; use std::collections::BTreeMap; use std::convert::From; -use std::hash; use std::marker::PhantomData; use std::sync::Arc; -use std::{cmp, error, f64, fmt, mem}; +use std::{cmp, error, f64, fmt, hash, mem}; use crate::miniscript::limits::MAX_PUBKEYS_PER_MULTISIG; use crate::miniscript::types::{self, ErrorKind, ExtData, Property, Type}; diff --git a/src/policy/concrete.rs b/src/policy/concrete.rs index bd7852739..c488f4f24 100644 --- a/src/policy/concrete.rs +++ b/src/policy/concrete.rs @@ -22,7 +22,6 @@ use bitcoin::hashes::hex::FromHex; use bitcoin::hashes::{hash160, ripemd160, sha256, sha256d}; use super::ENTAILMENT_MAX_TERMINALS; -use crate::errstr; use crate::expression::{self, FromTree}; use crate::miniscript::limits::{HEIGHT_TIME_THRESHOLD, SEQUENCE_LOCKTIME_TYPE_FLAG}; use crate::miniscript::types::extra_props::TimeLockInfo; @@ -34,7 +33,7 @@ use crate::policy::compiler; use crate::policy::compiler::CompilerError; #[cfg(feature = "compiler")] use crate::Miniscript; -use crate::{Error, ForEach, ForEachKey, MiniscriptKey}; +use crate::{errstr, Error, ForEach, ForEachKey, MiniscriptKey}; /// Concrete policy which corresponds directly to a Miniscript structure, /// and whose disjunctions are annotated with satisfaction probabilities /// to assist the compiler diff --git a/src/policy/mod.rs b/src/policy/mod.rs index 253c37385..5c3c48d8d 100644 --- a/src/policy/mod.rs +++ b/src/policy/mod.rs @@ -34,9 +34,7 @@ pub use self::concrete::Policy as Concrete; pub use self::semantic::Policy as Semantic; use crate::descriptor::Descriptor; use crate::miniscript::{Miniscript, ScriptContext}; -use crate::Error; -use crate::MiniscriptKey; -use crate::Terminal; +use crate::{Error, MiniscriptKey, Terminal}; /// Policy entailment algorithm maximum number of terminals allowed const ENTAILMENT_MAX_TERMINALS: usize = 20; @@ -231,10 +229,9 @@ mod tests { use bitcoin; - use super::{ - super::miniscript::{context::Segwitv0, Miniscript}, - Concrete, Liftable, Semantic, - }; + use super::super::miniscript::context::Segwitv0; + use super::super::miniscript::Miniscript; + use super::{Concrete, Liftable, Semantic}; use crate::DummyKey; type ConcretePol = Concrete; diff --git a/src/policy/semantic.rs b/src/policy/semantic.rs index 8738b6bcb..69b0eff34 100644 --- a/src/policy/semantic.rs +++ b/src/policy/semantic.rs @@ -22,9 +22,7 @@ use bitcoin::hashes::{hash160, ripemd160, sha256, sha256d}; use super::concrete::PolicyError; use super::ENTAILMENT_MAX_TERMINALS; -use crate::errstr; -use crate::Error; -use crate::{expression, ForEach, ForEachKey, MiniscriptKey}; +use crate::{errstr, expression, Error, ForEach, ForEachKey, MiniscriptKey}; /// Abstract policy which corresponds to the semantics of a Miniscript /// and which allows complex forms of analysis, e.g. filtering and diff --git a/src/psbt/finalizer.rs b/src/psbt/finalizer.rs index 5bfbfed8a..a0aa840bd 100644 --- a/src/psbt/finalizer.rs +++ b/src/psbt/finalizer.rs @@ -28,15 +28,10 @@ use bitcoin::util::sighash::Prevouts; use bitcoin::util::taproot::LeafVersion; use bitcoin::{self, PublicKey, Script, TxOut}; -use super::{sanity_check, Psbt}; -use super::{Error, InputError, PsbtInputSatisfier}; +use super::{sanity_check, Error, InputError, Psbt, PsbtInputSatisfier}; use crate::descriptor::DescriptorTrait; -use crate::interpreter; use crate::util::witness_size; -use crate::Descriptor; -use crate::Miniscript; -use crate::Satisfier; -use crate::{BareCtx, Legacy, Segwitv0, Tap}; +use crate::{interpreter, BareCtx, Descriptor, Legacy, Miniscript, Satisfier, Segwitv0, Tap}; // Satisfy the taproot descriptor. It is not possible to infer the complete // descriptor from psbt because the information about all the scripts might not diff --git a/src/psbt/mod.rs b/src/psbt/mod.rs index 9df061701..c9cb7df42 100644 --- a/src/psbt/mod.rs +++ b/src/psbt/mod.rs @@ -28,19 +28,14 @@ use bitcoin::secp256k1::{self, Secp256k1}; use bitcoin::util::psbt::{self, PartiallySignedTransaction as Psbt}; use bitcoin::util::sighash::SighashCache; use bitcoin::util::taproot::{self, ControlBlock, LeafVersion, TapLeafHash}; -use bitcoin::{self, SchnorrSighashType}; -use bitcoin::{EcdsaSighashType, Script}; +use bitcoin::{self, EcdsaSighashType, SchnorrSighashType, Script}; -use crate::descriptor; -use crate::interpreter; use crate::miniscript::iter::PkPkh; use crate::miniscript::limits::SEQUENCE_LOCKTIME_DISABLE_FLAG; use crate::miniscript::satisfy::{After, Older}; -use crate::Preimage32; -use crate::Satisfier; use crate::{ - Descriptor, DescriptorPublicKey, DescriptorTrait, MiniscriptKey, ToPublicKey, TranslatePk, - TranslatePk2, + descriptor, interpreter, Descriptor, DescriptorPublicKey, DescriptorTrait, MiniscriptKey, + Preimage32, Satisfier, ToPublicKey, TranslatePk, TranslatePk2, }; mod finalizer;