Skip to content

Commit

Permalink
Configure group_imports
Browse files Browse the repository at this point in the history
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).
  • Loading branch information
tcharding committed May 3, 2022
1 parent fb8f714 commit d7010c4
Show file tree
Hide file tree
Showing 38 changed files with 156 additions and 148 deletions.
3 changes: 2 additions & 1 deletion examples/htlc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,12 @@
extern crate bitcoin;
extern crate miniscript;

use std::str::FromStr;

use bitcoin::Network;
use miniscript::descriptor::Wsh;
use miniscript::policy::{Concrete, Liftable};
use miniscript::DescriptorTrait;
use std::str::FromStr;

fn main() {
//HTLC policy with 10:1 odds for happy(co-operative) case compared to uncooperative case
Expand Down
4 changes: 2 additions & 2 deletions examples/parse.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@

//! Example: Parsing a descriptor from a string

use std::str::FromStr;

use bitcoin;
use miniscript;

use miniscript::{descriptor::DescriptorType, Descriptor, DescriptorTrait};
use std::str::FromStr;

fn main() {
let my_descriptor = miniscript::Descriptor::<bitcoin::PublicKey>::from_str(
Expand Down
1 change: 0 additions & 1 deletion examples/psbt.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
use bitcoin;

use bitcoin::consensus::encode::deserialize;
use bitcoin::hashes::hex::FromHex;
use miniscript::psbt::PsbtExt;
Expand Down
8 changes: 4 additions & 4 deletions examples/sign_multisig.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@

//! Example: Signing a 2-of-3 multisignature

use bitcoin;
use miniscript;
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 std::collections::HashMap;
use std::str::FromStr;

fn main() {
// Avoid repeatedly typing a pretty-common descriptor type
Expand Down
6 changes: 3 additions & 3 deletions examples/verify_tx.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@

//! Example: Verifying a signed transaction

use bitcoin;
use miniscript;
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 std::str::FromStr;

fn main() {
// tx `f27eba163c38ad3f34971198687a3f1882b7ec818599ffe469a8440d82261c98`
Expand Down
4 changes: 2 additions & 2 deletions examples/xpub_descriptors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@

//! Example: Parsing a xpub and getting address

use std::str::FromStr;

use miniscript::bitcoin::{self, secp256k1};
use miniscript::{Descriptor, DescriptorPublicKey, DescriptorTrait, TranslatePk2};

use std::str::FromStr;
fn main() {
// For deriving from descriptors, we need to provide a secp context
let secp_ctx = secp256k1::Secp256k1::verification_only();
Expand Down
2 changes: 1 addition & 1 deletion rustfmt.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ where_single_line = false
imports_indent = "Block"
imports_layout = "Mixed"
imports_granularity = "Preserve"
group_imports = "Preserve"
group_imports = "StdExternalCrate" # Default "Preserve"
reorder_imports = true
reorder_modules = true
reorder_impl_items = false
Expand Down
9 changes: 4 additions & 5 deletions src/descriptor/bare.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ use std::{fmt, str::FromStr};

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

use super::{
checksum::{desc_checksum, verify_checksum},
DescriptorTrait,
};
use crate::expression::{self, FromTree};
use crate::miniscript::context::ScriptContext;
use crate::policy::{semantic, Liftable};
Expand All @@ -31,11 +35,6 @@ use crate::{
TranslatePk,
};

use super::{
checksum::{desc_checksum, verify_checksum},
DescriptorTrait,
};

/// Create a Bare Descriptor. That is descriptor that is
/// not wrapped in sh or wsh. This covers the Pk descriptor
#[derive(Clone, Ord, PartialOrd, Eq, PartialEq, Hash)]
Expand Down
3 changes: 2 additions & 1 deletion src/descriptor/checksum.rs
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,10 @@ pub(super) fn verify_checksum(s: &str) -> Result<&str, Error> {
}
#[cfg(test)]
mod test {
use super::*;
use std::str;

use super::*;

macro_rules! check_expected {
($desc: expr, $checksum: expr) => {
assert_eq!(desc_checksum($desc).unwrap(), $checksum);
Expand Down
4 changes: 2 additions & 2 deletions src/descriptor/key.rs
Original file line number Diff line number Diff line change
Expand Up @@ -715,11 +715,11 @@ impl MiniscriptKey for DescriptorPublicKey {

#[cfg(test)]
mod test {
use super::{DescriptorKeyParseError, DescriptorPublicKey, DescriptorSecretKey};
use std::str::FromStr;

use bitcoin::secp256k1;

use std::str::FromStr;
use super::{DescriptorKeyParseError, DescriptorPublicKey, DescriptorSecretKey};

#[test]
fn parse_descriptor_key_errors() {
Expand Down
21 changes: 11 additions & 10 deletions src/descriptor/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -867,26 +867,27 @@ serde_string_impl_pk!(Descriptor, "a script descriptor");

#[cfg(test)]
mod tests {
use super::checksum::desc_checksum;
use super::tr::Tr;
use super::*;
use crate::descriptor::key::Wildcard;
use crate::descriptor::{DescriptorPublicKey, DescriptorSecretKey, DescriptorXKey, SinglePub};
use crate::hex_script;
use crate::{Descriptor, DummyKey, Error, Miniscript, Satisfier, TranslatePk2};
use std::cmp;
use std::collections::HashMap;
use std::str::FromStr;

use bitcoin::blockdata::opcodes::all::{OP_CLTV, OP_CSV};
use bitcoin::blockdata::script::Instruction;
use bitcoin::blockdata::{opcodes, script};
use bitcoin::hashes::hex::{FromHex, ToHex};
use bitcoin::hashes::{hash160, sha256};
use bitcoin::util::bip32;
use bitcoin::{self, secp256k1, EcdsaSighashType, PublicKey};
use std::cmp;
use std::collections::HashMap;
use std::str::FromStr;

use super::checksum::desc_checksum;
use super::tr::Tr;
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};

type StdDescriptor = Descriptor<PublicKey>;
const TEST_PK: &'static str =
Expand Down
3 changes: 1 addition & 2 deletions src/descriptor/pretaproot.rs
Original file line number Diff line number Diff line change
Expand Up @@ -241,13 +241,12 @@ serde_string_impl_pk!(PreTaprootDescriptor, "a pre-taproot script descriptor");
pub(crate) mod traits {
use bitcoin::Script;

use super::PreTaprootDescriptor;
use crate::{
descriptor::{Pkh, Sh, Wpkh, Wsh},
DescriptorTrait, MiniscriptKey, ToPublicKey,
};

use super::PreTaprootDescriptor;

/// A general trait for Pre taproot bitcoin descriptor.
/// Similar to [`DescriptorTrait`], but `explicit_script` and `script_code` methods cannot fail
pub trait PreTaprootDescriptorTrait<Pk: MiniscriptKey>: DescriptorTrait<Pk> {
Expand Down
9 changes: 4 additions & 5 deletions src/descriptor/segwitv0.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ use std::{fmt, str::FromStr};

use bitcoin::{self, Script};

use super::{
checksum::{desc_checksum, verify_checksum},
DescriptorTrait, SortedMultiVec,
};
use crate::expression::{self, FromTree};
use crate::miniscript::context::{ScriptContext, ScriptContextError};
use crate::policy::{semantic, Liftable};
Expand All @@ -28,11 +32,6 @@ use crate::{
Error, ForEach, ForEachKey, Miniscript, MiniscriptKey, Satisfier, Segwitv0, ToPublicKey,
TranslatePk,
};

use super::{
checksum::{desc_checksum, verify_checksum},
DescriptorTrait, SortedMultiVec,
};
/// A Segwitv0 wsh descriptor
#[derive(Clone, Ord, PartialOrd, Eq, PartialEq, Hash)]
pub struct Wsh<Pk: MiniscriptKey> {
Expand Down
9 changes: 4 additions & 5 deletions src/descriptor/sh.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ use std::{fmt, str::FromStr};

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

use super::{
checksum::{desc_checksum, verify_checksum},
DescriptorTrait, SortedMultiVec, Wpkh, Wsh,
};
use crate::expression::{self, FromTree};
use crate::miniscript::context::ScriptContext;
use crate::policy::{semantic, Liftable};
Expand All @@ -32,11 +36,6 @@ use crate::{
ToPublicKey, TranslatePk,
};

use super::{
checksum::{desc_checksum, verify_checksum},
DescriptorTrait, SortedMultiVec, Wpkh, Wsh,
};

/// A Legacy p2sh Descriptor
#[derive(Clone, Ord, PartialOrd, Eq, PartialEq, Hash)]
pub struct Sh<Pk: MiniscriptKey> {
Expand Down
3 changes: 2 additions & 1 deletion src/descriptor/sortedmulti.rs
Original file line number Diff line number Diff line change
Expand Up @@ -242,10 +242,11 @@ impl<Pk: MiniscriptKey, Ctx: ScriptContext> fmt::Display for SortedMultiVec<Pk,

#[cfg(test)]
mod tests {
use super::*;
use bitcoin::secp256k1::PublicKey;
use miniscript::context::Legacy;

use super::*;

#[test]
fn too_many_pubkeys() {
// Arbitrary pubic key.
Expand Down
29 changes: 15 additions & 14 deletions src/descriptor/tr.rs
Original file line number Diff line number Diff line change
@@ -1,26 +1,27 @@
// Tapscript

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

use super::checksum::{desc_checksum, verify_checksum};
use crate::errstr;
use crate::expression::{self, FromTree};
use crate::miniscript::Miniscript;
use crate::Tap;
use crate::{Error, MiniscriptKey};
use bitcoin::blockdata::opcodes;
use bitcoin::util::taproot::{
LeafVersion, TaprootBuilder, TaprootBuilderError, TaprootSpendInfo, TAPROOT_CONTROL_BASE_SIZE,
TAPROOT_CONTROL_MAX_NODE_COUNT, TAPROOT_CONTROL_NODE_SIZE,
};
use bitcoin::{self, secp256k1, Script};
use std::cmp::{self, max};
use std::hash;
use std::sync::{Arc, Mutex};
use std::{fmt, str::FromStr};

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};

/// A Taproot Tree representation.
// Hidden leaves are not yet supported in descriptor spec. Conceptually, it should
Expand Down
1 change: 0 additions & 1 deletion src/expression.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ use std::str::FromStr;

use crate::errstr;
use crate::Error;

use crate::MAX_RECURSION_DEPTH;

#[derive(Debug)]
Expand Down
3 changes: 2 additions & 1 deletion src/interpreter/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
//

use std::{error, fmt};

use bitcoin::hashes::{hash160, hex::ToHex};
use bitcoin::util::taproot;
use bitcoin::{self, secp256k1};
use std::{error, fmt};

use super::BitcoinKey;

Expand Down
9 changes: 5 additions & 4 deletions src/interpreter/inner.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,9 @@ use bitcoin::blockdata::witness::Witness;
use bitcoin::hashes::{hash160, sha256, Hash};
use bitcoin::util::taproot::{ControlBlock, TAPROOT_ANNEX_PREFIX};

use crate::{BareCtx, Legacy, Segwitv0, Tap};

use super::{stack, BitcoinKey, Error, Stack, TypedHash160};
use crate::miniscript::context::{NoChecks, ScriptContext};
use crate::{BareCtx, Legacy, Segwitv0, Tap};
use crate::{Miniscript, MiniscriptKey};

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

use super::*;
use std::str::FromStr;

use bitcoin::blockdata::script;
use bitcoin::hashes::hex::FromHex;
use bitcoin::hashes::{hash160, sha256, Hash};
use bitcoin::{self, Script};
use std::str::FromStr;

use super::*;

struct KeyTestData {
pk_spk: bitcoin::Script,
Expand Down
Loading

0 comments on commit d7010c4

Please sign in to comment.