Skip to content

Commit 618017d

Browse files
committed
Configure group_imports
Configure `group_imports = "StdExternalCrate"`. The benefit of this option is that it increases uniformity in the code base over the default "Preserve", while saving devs needing to think about where they place their import statements (for those that do not use tooling to add them).
1 parent 299ea44 commit 618017d

36 files changed

+152
-140
lines changed

examples/htlc.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@
1414

1515
//! Example: Create an HTLC with miniscript using the policy compiler
1616
17+
use std::str::FromStr;
18+
1719
use bitcoin::Network;
1820
use miniscript::descriptor::Wsh;
1921
use miniscript::policy::{Concrete, Liftable};
2022
use miniscript::DescriptorTrait;
21-
use std::str::FromStr;
2223

2324
fn main() {
2425
// HTLC policy with 10:1 odds for happy (co-operative) case compared to uncooperative case.

examples/parse.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@
1414

1515
//! Example: Parsing a descriptor from a string.
1616
17-
use miniscript::{descriptor::DescriptorType, Descriptor, DescriptorTrait};
1817
use std::str::FromStr;
1918

19+
use miniscript::{descriptor::DescriptorType, Descriptor, DescriptorTrait};
20+
2021
fn main() {
2122
let desc = miniscript::Descriptor::<bitcoin::PublicKey>::from_str(
2223
"wsh(c:pk_k(020202020202020202020202020202020202020202020202020202020202020202))",

examples/sign_multisig.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@
1414

1515
//! Example: Signing a 2-of-3 multisignature.
1616
17+
use std::collections::HashMap;
18+
use std::str::FromStr;
19+
1720
use bitcoin::blockdata::witness::Witness;
1821
use bitcoin::secp256k1;
1922
use miniscript::DescriptorTrait;
20-
use std::collections::HashMap;
21-
use std::str::FromStr;
2223

2324
fn main() {
2425
let mut tx = spending_transaction();

examples/verify_tx.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@
1414

1515
//! Example: Verifying a signed transaction.
1616
17+
use std::str::FromStr;
18+
1719
use bitcoin::consensus::Decodable;
1820
use bitcoin::secp256k1::{self, Secp256k1};
1921
use bitcoin::util::sighash;
2022
use miniscript::interpreter::KeySigPair;
21-
use std::str::FromStr;
2223

2324
fn main() {
2425
//

rustfmt.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ where_single_line = false
2828
imports_indent = "Block"
2929
imports_layout = "Mixed"
3030
imports_granularity = "Preserve"
31-
group_imports = "Preserve"
31+
group_imports = "StdExternalCrate" # Default "Preserve"
3232
reorder_imports = true
3333
reorder_modules = true
3434
reorder_impl_items = false

src/descriptor/bare.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ use std::{fmt, str::FromStr};
2222

2323
use bitcoin::{self, blockdata::script, Script};
2424

25+
use super::{
26+
checksum::{desc_checksum, verify_checksum},
27+
DescriptorTrait,
28+
};
2529
use crate::expression::{self, FromTree};
2630
use crate::miniscript::context::ScriptContext;
2731
use crate::policy::{semantic, Liftable};
@@ -31,11 +35,6 @@ use crate::{
3135
TranslatePk,
3236
};
3337

34-
use super::{
35-
checksum::{desc_checksum, verify_checksum},
36-
DescriptorTrait,
37-
};
38-
3938
/// Create a Bare Descriptor. That is descriptor that is
4039
/// not wrapped in sh or wsh. This covers the Pk descriptor
4140
#[derive(Clone, Ord, PartialOrd, Eq, PartialEq, Hash)]

src/descriptor/checksum.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,10 @@ pub(super) fn verify_checksum(s: &str) -> Result<&str, Error> {
101101
}
102102
#[cfg(test)]
103103
mod test {
104-
use super::*;
105104
use std::str;
106105

106+
use super::*;
107+
107108
macro_rules! check_expected {
108109
($desc: expr, $checksum: expr) => {
109110
assert_eq!(desc_checksum($desc).unwrap(), $checksum);

src/descriptor/key.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -723,11 +723,11 @@ impl MiniscriptKey for DescriptorPublicKey {
723723

724724
#[cfg(test)]
725725
mod test {
726-
use super::{DescriptorKeyParseError, DescriptorPublicKey, DescriptorSecretKey};
726+
use std::str::FromStr;
727727

728728
use bitcoin::secp256k1;
729729

730-
use std::str::FromStr;
730+
use super::{DescriptorKeyParseError, DescriptorPublicKey, DescriptorSecretKey};
731731

732732
#[test]
733733
fn parse_descriptor_key_errors() {

src/descriptor/mod.rs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -857,26 +857,27 @@ serde_string_impl_pk!(Descriptor, "a script descriptor");
857857

858858
#[cfg(test)]
859859
mod tests {
860-
use super::checksum::desc_checksum;
861-
use super::tr::Tr;
862-
use super::*;
863-
use crate::descriptor::key::Wildcard;
864-
use crate::descriptor::{DescriptorPublicKey, DescriptorSecretKey, DescriptorXKey, SinglePub};
865-
use crate::hex_script;
866-
use crate::{Descriptor, DummyKey, Error, Miniscript, Satisfier, TranslatePk2};
860+
use std::cmp;
861+
use std::collections::HashMap;
862+
use std::str::FromStr;
863+
867864
use bitcoin::blockdata::opcodes::all::{OP_CLTV, OP_CSV};
868865
use bitcoin::blockdata::script::Instruction;
869866
use bitcoin::blockdata::{opcodes, script};
870867
use bitcoin::hashes::hex::{FromHex, ToHex};
871868
use bitcoin::hashes::{hash160, sha256};
872869
use bitcoin::util::bip32;
873870
use bitcoin::{self, secp256k1, EcdsaSighashType, PublicKey};
874-
use std::cmp;
875-
use std::collections::HashMap;
876-
use std::str::FromStr;
877871

872+
use super::checksum::desc_checksum;
873+
use super::tr::Tr;
874+
use super::*;
875+
use crate::descriptor::key::Wildcard;
876+
use crate::descriptor::{DescriptorPublicKey, DescriptorSecretKey, DescriptorXKey, SinglePub};
877+
use crate::hex_script;
878878
#[cfg(feature = "compiler")]
879879
use crate::policy;
880+
use crate::{Descriptor, DummyKey, Error, Miniscript, Satisfier, TranslatePk2};
880881

881882
type StdDescriptor = Descriptor<PublicKey>;
882883
const TEST_PK: &'static str =

src/descriptor/pretaproot.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,13 +241,12 @@ serde_string_impl_pk!(PreTaprootDescriptor, "a pre-taproot script descriptor");
241241
pub(crate) mod traits {
242242
use bitcoin::Script;
243243

244+
use super::PreTaprootDescriptor;
244245
use crate::{
245246
descriptor::{Pkh, Sh, Wpkh, Wsh},
246247
DescriptorTrait, MiniscriptKey, ToPublicKey,
247248
};
248249

249-
use super::PreTaprootDescriptor;
250-
251250
/// A general trait for Pre taproot bitcoin descriptor.
252251
/// Similar to [`DescriptorTrait`], but `explicit_script` and `script_code` methods cannot fail
253252
pub trait PreTaprootDescriptorTrait<Pk: MiniscriptKey>: DescriptorTrait<Pk> {

src/descriptor/segwitv0.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ use std::{fmt, str::FromStr};
2020

2121
use bitcoin::{self, Script};
2222

23+
use super::{
24+
checksum::{desc_checksum, verify_checksum},
25+
DescriptorTrait, SortedMultiVec,
26+
};
2327
use crate::expression::{self, FromTree};
2428
use crate::miniscript::context::{ScriptContext, ScriptContextError};
2529
use crate::policy::{semantic, Liftable};
@@ -28,11 +32,6 @@ use crate::{
2832
Error, ForEach, ForEachKey, Miniscript, MiniscriptKey, Satisfier, Segwitv0, ToPublicKey,
2933
TranslatePk,
3034
};
31-
32-
use super::{
33-
checksum::{desc_checksum, verify_checksum},
34-
DescriptorTrait, SortedMultiVec,
35-
};
3635
/// A Segwitv0 wsh descriptor
3736
#[derive(Clone, Ord, PartialOrd, Eq, PartialEq, Hash)]
3837
pub struct Wsh<Pk: MiniscriptKey> {

src/descriptor/sh.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ use std::{fmt, str::FromStr};
2222

2323
use bitcoin::{self, blockdata::script, Script};
2424

25+
use super::{
26+
checksum::{desc_checksum, verify_checksum},
27+
DescriptorTrait, SortedMultiVec, Wpkh, Wsh,
28+
};
2529
use crate::expression::{self, FromTree};
2630
use crate::miniscript::context::ScriptContext;
2731
use crate::policy::{semantic, Liftable};
@@ -32,11 +36,6 @@ use crate::{
3236
ToPublicKey, TranslatePk,
3337
};
3438

35-
use super::{
36-
checksum::{desc_checksum, verify_checksum},
37-
DescriptorTrait, SortedMultiVec, Wpkh, Wsh,
38-
};
39-
4039
/// A Legacy p2sh Descriptor
4140
#[derive(Clone, Ord, PartialOrd, Eq, PartialEq, Hash)]
4241
pub struct Sh<Pk: MiniscriptKey> {

src/descriptor/sortedmulti.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,10 +242,11 @@ impl<Pk: MiniscriptKey, Ctx: ScriptContext> fmt::Display for SortedMultiVec<Pk,
242242

243243
#[cfg(test)]
244244
mod tests {
245-
use super::*;
246245
use bitcoin::secp256k1::PublicKey;
247246
use miniscript::context::Legacy;
248247

248+
use super::*;
249+
249250
#[test]
250251
fn too_many_pubkeys() {
251252
// Arbitrary pubic key.

src/descriptor/tr.rs

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,27 @@
11
// Tapscript
22

3-
use crate::policy::semantic::Policy;
4-
use crate::policy::Liftable;
5-
use crate::util::{varint_len, witness_size};
6-
use crate::{DescriptorTrait, ForEach, ForEachKey, Satisfier, ToPublicKey, TranslatePk};
3+
use std::cmp::{self, max};
4+
use std::hash;
5+
use std::sync::{Arc, Mutex};
6+
use std::{fmt, str::FromStr};
77

8-
use super::checksum::{desc_checksum, verify_checksum};
9-
use crate::errstr;
10-
use crate::expression::{self, FromTree};
11-
use crate::miniscript::Miniscript;
12-
use crate::Tap;
13-
use crate::{Error, MiniscriptKey};
148
use bitcoin::blockdata::opcodes;
159
use bitcoin::util::taproot::{
1610
LeafVersion, TaprootBuilder, TaprootBuilderError, TaprootSpendInfo, TAPROOT_CONTROL_BASE_SIZE,
1711
TAPROOT_CONTROL_MAX_NODE_COUNT, TAPROOT_CONTROL_NODE_SIZE,
1812
};
1913
use bitcoin::{self, secp256k1, Script};
20-
use std::cmp::{self, max};
21-
use std::hash;
22-
use std::sync::{Arc, Mutex};
23-
use std::{fmt, str::FromStr};
14+
15+
use super::checksum::{desc_checksum, verify_checksum};
16+
use crate::errstr;
17+
use crate::expression::{self, FromTree};
18+
use crate::miniscript::Miniscript;
19+
use crate::policy::semantic::Policy;
20+
use crate::policy::Liftable;
21+
use crate::util::{varint_len, witness_size};
22+
use crate::Tap;
23+
use crate::{DescriptorTrait, ForEach, ForEachKey, Satisfier, ToPublicKey, TranslatePk};
24+
use crate::{Error, MiniscriptKey};
2425

2526
/// A Taproot Tree representation.
2627
// Hidden leaves are not yet supported in descriptor spec. Conceptually, it should

src/expression.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ use std::str::FromStr;
1919

2020
use crate::errstr;
2121
use crate::Error;
22-
2322
use crate::MAX_RECURSION_DEPTH;
2423

2524
#[derive(Debug)]

src/interpreter/error.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@
1212
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
1313
//
1414

15+
use std::{error, fmt};
16+
1517
use bitcoin::hashes::{hash160, hex::ToHex};
1618
use bitcoin::util::taproot;
1719
use bitcoin::{self, secp256k1};
18-
use std::{error, fmt};
1920

2021
use super::BitcoinKey;
2122

src/interpreter/inner.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,9 @@ use bitcoin::blockdata::witness::Witness;
1717
use bitcoin::hashes::{hash160, sha256, Hash};
1818
use bitcoin::util::taproot::{ControlBlock, TAPROOT_ANNEX_PREFIX};
1919

20-
use crate::{BareCtx, Legacy, Segwitv0, Tap};
21-
2220
use super::{stack, BitcoinKey, Error, Stack, TypedHash160};
2321
use crate::miniscript::context::{NoChecks, ScriptContext};
22+
use crate::{BareCtx, Legacy, Segwitv0, Tap};
2423
use crate::{Miniscript, MiniscriptKey};
2524

2625
/// Attempts to parse a slice as a Bitcoin public key, checking compressedness
@@ -401,12 +400,14 @@ impl<Ctx: ScriptContext> ToNoChecks for Miniscript<bitcoin::XOnlyPublicKey, Ctx>
401400
#[cfg(test)]
402401
mod tests {
403402

404-
use super::*;
403+
use std::str::FromStr;
404+
405405
use bitcoin::blockdata::script;
406406
use bitcoin::hashes::hex::FromHex;
407407
use bitcoin::hashes::{hash160, sha256, Hash};
408408
use bitcoin::{self, Script};
409-
use std::str::FromStr;
409+
410+
use super::*;
410411

411412
struct KeyTestData {
412413
pk_spk: bitcoin::Script,

src/interpreter/mod.rs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,29 +19,29 @@
1919
//! assuming that the spent coin was descriptor controlled.
2020
//!
2121
22-
use bitcoin::blockdata::witness::Witness;
23-
use bitcoin::util::{sighash, taproot};
2422
use std::borrow::Borrow;
2523
use std::fmt;
2624
use std::str::FromStr;
2725

26+
use bitcoin::blockdata::witness::Witness;
27+
use bitcoin::hashes::{hash160, ripemd160, sha256, sha256d};
28+
use bitcoin::util::{sighash, taproot};
29+
use bitcoin::{self, secp256k1, TxOut};
30+
2831
use crate::miniscript::context::NoChecks;
2932
use crate::miniscript::ScriptContext;
3033
use crate::Miniscript;
3134
use crate::Terminal;
3235
use crate::{Descriptor, ToPublicKey};
33-
use bitcoin::hashes::{hash160, ripemd160, sha256, sha256d};
34-
use bitcoin::{self, secp256k1, TxOut};
3536

3637
mod error;
3738
mod inner;
3839
mod stack;
3940

40-
use crate::MiniscriptKey;
41-
4241
pub use self::error::Error;
4342
use self::error::PkEvalErrInner;
4443
use self::stack::Stack;
44+
use crate::MiniscriptKey;
4545

4646
/// An iterable Miniscript-structured representation of the spending of a coin
4747
pub struct Interpreter<'txin> {
@@ -1030,15 +1030,16 @@ fn verify_sersig<'txin>(
10301030
#[cfg(test)]
10311031
mod tests {
10321032

1033+
use bitcoin;
1034+
use bitcoin::hashes::{hash160, ripemd160, sha256, sha256d, Hash};
1035+
use bitcoin::secp256k1::{self, Secp256k1};
1036+
10331037
use super::inner::ToNoChecks;
10341038
use super::*;
10351039
use crate::miniscript::context::NoChecks;
10361040
use crate::Miniscript;
10371041
use crate::MiniscriptKey;
10381042
use crate::ToPublicKey;
1039-
use bitcoin;
1040-
use bitcoin::hashes::{hash160, ripemd160, sha256, sha256d, Hash};
1041-
use bitcoin::secp256k1::{self, Secp256k1};
10421043

10431044
fn setup_keys_sigs(
10441045
n: usize,

src/lib.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,15 +119,14 @@ use std::{error, fmt, hash, str};
119119
use bitcoin::blockdata::{opcodes, script};
120120
use bitcoin::hashes::{hash160, sha256, Hash};
121121

122+
pub use crate::descriptor::pretaproot::{traits::PreTaprootDescriptorTrait, PreTaprootDescriptor};
122123
pub use crate::descriptor::{Descriptor, DescriptorPublicKey, DescriptorTrait};
123124
pub use crate::interpreter::Interpreter;
124125
pub use crate::miniscript::context::{BareCtx, Legacy, ScriptContext, Segwitv0, Tap};
125126
pub use crate::miniscript::decode::Terminal;
126127
pub use crate::miniscript::satisfy::{Preimage32, Satisfier};
127128
pub use crate::miniscript::Miniscript;
128129

129-
pub use crate::descriptor::pretaproot::{traits::PreTaprootDescriptorTrait, PreTaprootDescriptor};
130-
131130
///Public key trait which can be converted to Hash type
132131
pub trait MiniscriptKey: Clone + Eq + Ord + fmt::Debug + fmt::Display + hash::Hash {
133132
/// Returns true if the pubkey is uncompressed. Defaults to `false`.

0 commit comments

Comments
 (0)