Skip to content

Commit d3f638d

Browse files
committed
Merge #645: remove sketchy LikelyFalse error
50db03c cargo fmt (Andrew Poelstra) 220f101 ci: screw up imports for rust-lang/rust#121684 (Andrew Poelstra) df069af ci: remove unnecessary imports of `bitcoin` (Andrew Poelstra) 3725549 ci: tighten import of `Vec` (Andrew Poelstra) d441ccd ci: remove imports that are redundant with super::* (Andrew Poelstra) b87b4fb remove sketchy `LikelyFalse` error (Andrew Poelstra) Pull request description: This error would trigger on `l:0` on the basis that this is equivalent to `u:0` but always less efficient. There are no other "linting" errors like this in this library, and the C++ implementation doesn't have it, so we should drop it. Fixes #633 ACKs for top commit: tcharding: ACK 50db03c sanket1729: ACK 50db03c Tree-SHA512: 30681e6abe7957b9fbe059e808d8057fd174ea156d1853960370d2fd63b032a500f85965a5c7424764df76ed804c62d9a781ae38cdc2b123e9b4b53308dd89f5
2 parents ef3abb6 + 50db03c commit d3f638d

21 files changed

+31
-46
lines changed

examples/psbt_sign_finalize.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ use miniscript::bitcoin::consensus::encode::deserialize;
77
use miniscript::bitcoin::hashes::hex::FromHex;
88
use miniscript::bitcoin::psbt::{self, Psbt};
99
use miniscript::bitcoin::sighash::SighashCache;
10+
//use miniscript::bitcoin::secp256k1; // https://github.com/rust-lang/rust/issues/121684
1011
use miniscript::bitcoin::{
11-
self, secp256k1, transaction, Address, Amount, Network, OutPoint, PrivateKey, Script, Sequence,
12-
Transaction, TxIn, TxOut,
12+
transaction, Address, Amount, Network, OutPoint, PrivateKey, Script, Sequence, Transaction,
13+
TxIn, TxOut,
1314
};
1415
use miniscript::psbt::{PsbtExt, PsbtInputExt};
1516
use miniscript::Descriptor;

examples/sign_multisig.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use std::collections::HashMap;
66
use std::str::FromStr;
77

88
use bitcoin::blockdata::witness::Witness;
9-
use bitcoin::{absolute, ecdsa, secp256k1, transaction, Amount, Sequence};
9+
use bitcoin::{absolute, ecdsa, transaction, Amount, Sequence};
1010

1111
fn main() {
1212
let mut tx = spending_transaction();

examples/verify_tx.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
use std::str::FromStr;
66

77
use miniscript::bitcoin::consensus::Decodable;
8-
use miniscript::bitcoin::secp256k1::{self, Secp256k1};
8+
use miniscript::bitcoin::secp256k1::Secp256k1;
99
use miniscript::bitcoin::{absolute, sighash, Sequence};
1010
use miniscript::interpreter::KeySigPair;
1111

src/descriptor/key.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1142,7 +1142,7 @@ impl Serialize for DescriptorPublicKey {
11421142
mod test {
11431143
use core::str::FromStr;
11441144

1145-
use bitcoin::{bip32, secp256k1};
1145+
use bitcoin::bip32;
11461146
#[cfg(feature = "serde")]
11471147
use serde_test::{assert_tokens, Token};
11481148

src/descriptor/mod.rs

+3-7
Original file line numberDiff line numberDiff line change
@@ -997,25 +997,21 @@ pub(crate) use write_descriptor;
997997
#[cfg(test)]
998998
mod tests {
999999
use core::convert::TryFrom;
1000-
use core::str::FromStr;
10011000

10021001
use bitcoin::blockdata::opcodes::all::{OP_CLTV, OP_CSV};
10031002
use bitcoin::blockdata::script::Instruction;
10041003
use bitcoin::blockdata::{opcodes, script};
10051004
use bitcoin::hashes::hex::FromHex;
1006-
use bitcoin::hashes::{hash160, sha256, Hash};
1005+
use bitcoin::hashes::Hash;
10071006
use bitcoin::script::PushBytes;
10081007
use bitcoin::sighash::EcdsaSighashType;
1009-
use bitcoin::{self, bip32, secp256k1, PublicKey, Sequence};
1008+
use bitcoin::{bip32, PublicKey, Sequence};
10101009

10111010
use super::checksum::desc_checksum;
1012-
use super::tr::Tr;
10131011
use super::*;
1014-
use crate::descriptor::key::Wildcard;
1015-
use crate::descriptor::{DescriptorPublicKey, DescriptorXKey, SinglePub};
1012+
use crate::hex_script;
10161013
#[cfg(feature = "compiler")]
10171014
use crate::policy;
1018-
use crate::{hex_script, Descriptor, Error, Miniscript, Satisfier};
10191015

10201016
type StdDescriptor = Descriptor<PublicKey>;
10211017
const TEST_PK: &str = "pk(020000000000000000000000000000000000000000000000000000000000000002)";

src/descriptor/tr.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@
33
use core::str::FromStr;
44
use core::{cmp, fmt, hash};
55

6+
#[cfg(not(test))] // https://github.com/rust-lang/rust/issues/121684
7+
use bitcoin::secp256k1;
68
use bitcoin::taproot::{
79
LeafVersion, TaprootBuilder, TaprootSpendInfo, TAPROOT_CONTROL_BASE_SIZE,
810
TAPROOT_CONTROL_MAX_NODE_COUNT, TAPROOT_CONTROL_NODE_SIZE,
911
};
10-
use bitcoin::{opcodes, secp256k1, Address, Network, ScriptBuf};
12+
use bitcoin::{opcodes, Address, Network, ScriptBuf};
1113
use sync::Arc;
1214

1315
use super::checksum::{self, verify_checksum};

src/interpreter/error.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ use std::error;
77

88
use bitcoin::hashes::hash160;
99
use bitcoin::hex::DisplayHex;
10-
use bitcoin::{secp256k1, taproot};
10+
#[cfg(not(test))] // https://github.com/rust-lang/rust/issues/121684
11+
use bitcoin::secp256k1;
12+
use bitcoin::taproot;
1113

1214
use super::BitcoinKey;
1315
use crate::prelude::*;

src/interpreter/inner.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -398,12 +398,10 @@ mod tests {
398398

399399
use bitcoin::blockdata::script;
400400
use bitcoin::hashes::hex::FromHex;
401-
use bitcoin::hashes::{hash160, sha256, Hash};
402401
use bitcoin::script::PushBytes;
403-
use bitcoin::{self, ScriptBuf};
402+
use bitcoin::ScriptBuf;
404403

405404
use super::*;
406-
use crate::miniscript::analyzable::ExtParams;
407405

408406
struct KeyTestData {
409407
pk_spk: bitcoin::ScriptBuf,

src/interpreter/mod.rs

+1-5
Original file line numberDiff line numberDiff line change
@@ -1023,15 +1023,11 @@ fn verify_sersig<'txin>(
10231023
#[cfg(test)]
10241024
mod tests {
10251025

1026-
use bitcoin;
1027-
use bitcoin::hashes::{hash160, ripemd160, sha256, Hash};
1028-
use bitcoin::secp256k1::{self, Secp256k1};
1026+
use bitcoin::secp256k1::Secp256k1;
10291027

10301028
use super::inner::ToNoChecks;
10311029
use super::*;
10321030
use crate::miniscript::analyzable::ExtParams;
1033-
use crate::miniscript::context::NoChecks;
1034-
use crate::{Miniscript, ToPublicKey};
10351031

10361032
#[allow(clippy::type_complexity)]
10371033
fn setup_keys_sigs(

src/lib.rs

-4
Original file line numberDiff line numberDiff line change
@@ -442,8 +442,6 @@ pub enum Error {
442442
MultiAt(String),
443443
/// Name of a fragment contained `@` but we were not parsing an OR
444444
AtOutsideOr(String),
445-
/// Encountered a `l:0` which is syntactically equal to `u:0` except stupid
446-
LikelyFalse,
447445
/// Encountered a wrapping character that we don't recognize
448446
UnknownWrapper(char),
449447
/// Parsed a miniscript and the result was not of type T
@@ -526,7 +524,6 @@ impl fmt::Display for Error {
526524
Error::MultiColon(ref s) => write!(f, "«{}» has multiple instances of «:»", s),
527525
Error::MultiAt(ref s) => write!(f, "«{}» has multiple instances of «@»", s),
528526
Error::AtOutsideOr(ref s) => write!(f, "«{}» contains «@» in non-or() context", s),
529-
Error::LikelyFalse => write!(f, "0 is not very likely (use «u:0»)"),
530527
Error::UnknownWrapper(ch) => write!(f, "unknown wrapper «{}:»", ch),
531528
Error::NonTopLevel(ref s) => write!(f, "non-T miniscript: {}", s),
532529
Error::Trailing(ref s) => write!(f, "trailing tokens: {}", s),
@@ -599,7 +596,6 @@ impl error::Error for Error {
599596
| MultiColon(_)
600597
| MultiAt(_)
601598
| AtOutsideOr(_)
602-
| LikelyFalse
603599
| UnknownWrapper(_)
604600
| NonTopLevel(_)
605601
| Trailing(_)

src/miniscript/astelem.rs

-3
Original file line numberDiff line numberDiff line change
@@ -412,9 +412,6 @@ impl_from_tree!(
412412
)
413413
}
414414
'l' => {
415-
if ms.node == Terminal::False {
416-
return Err(Error::LikelyFalse);
417-
}
418415
unwrapped = Terminal::OrI(
419416
Arc::new(Miniscript::from_ast(Terminal::False)?),
420417
Arc::new(ms),

src/miniscript/iter.rs

-2
Original file line numberDiff line numberDiff line change
@@ -204,9 +204,7 @@ impl<'a, Pk: MiniscriptKey, Ctx: ScriptContext> Iterator for PkIter<'a, Pk, Ctx>
204204
// dependent libraries for their own tasts based on Miniscript AST
205205
#[cfg(test)]
206206
pub mod test {
207-
use bitcoin;
208207
use bitcoin::hashes::{hash160, ripemd160, sha256, sha256d, Hash};
209-
use bitcoin::secp256k1;
210208

211209
use super::Miniscript;
212210
use crate::miniscript::context::Segwitv0;

src/miniscript/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -603,7 +603,7 @@ mod tests {
603603
use bitcoin::hashes::{hash160, sha256, Hash};
604604
use bitcoin::secp256k1::XOnlyPublicKey;
605605
use bitcoin::taproot::TapLeafHash;
606-
use bitcoin::{self, secp256k1, Sequence};
606+
use bitcoin::Sequence;
607607
use sync::Arc;
608608

609609
use super::{Miniscript, ScriptContext, Segwitv0, Tap};

src/plan.rs

-2
Original file line numberDiff line numberDiff line change
@@ -735,9 +735,7 @@ impl Assets {
735735
mod test {
736736
use std::str::FromStr;
737737

738-
use bitcoin::absolute::LockTime;
739738
use bitcoin::bip32::Xpub;
740-
use bitcoin::Sequence;
741739

742740
use super::*;
743741
use crate::*;

src/policy/compiler.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
//! Optimizing compiler from concrete policies to Miniscript
66
//!
77
8-
use core::convert::From;
98
use core::{cmp, f64, fmt, hash, mem};
109
#[cfg(feature = "std")]
1110
use std::error;
@@ -1152,7 +1151,7 @@ mod tests {
11521151
use core::str::FromStr;
11531152

11541153
use bitcoin::blockdata::{opcodes, script};
1155-
use bitcoin::{self, hashes, secp256k1, Sequence};
1154+
use bitcoin::{hashes, Sequence};
11561155

11571156
use super::*;
11581157
use crate::miniscript::{Legacy, Segwitv0, Tap};

src/policy/concrete.rs

-2
Original file line numberDiff line numberDiff line change
@@ -1146,8 +1146,6 @@ impl<Pk: MiniscriptKey> TreeLike for Arc<Policy<Pk>> {
11461146
mod compiler_tests {
11471147
use core::str::FromStr;
11481148

1149-
use sync::Arc;
1150-
11511149
use super::*;
11521150

11531151
#[test]

src/policy/mod.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ pub use self::semantic::Policy as Semantic;
2323
use crate::descriptor::Descriptor;
2424
use crate::miniscript::{Miniscript, ScriptContext};
2525
use crate::sync::Arc;
26-
use crate::{Error, MiniscriptKey, Terminal, Vec};
26+
#[cfg(all(not(feature = "std"), not(test)))]
27+
use crate::Vec;
28+
use crate::{Error, MiniscriptKey, Terminal};
2729

2830
/// Policy entailment algorithm maximum number of terminals allowed.
2931
const ENTAILMENT_MAX_TERMINALS: usize = 20;
@@ -245,10 +247,9 @@ mod tests {
245247
#[cfg(feature = "compiler")]
246248
use crate::descriptor::Tr;
247249
use crate::miniscript::context::Segwitv0;
248-
use crate::miniscript::Miniscript;
249250
use crate::prelude::*;
250251
#[cfg(feature = "compiler")]
251-
use crate::{descriptor::TapTree, Descriptor, Tap};
252+
use crate::{descriptor::TapTree, Tap};
252253

253254
type ConcretePol = Concrete<String>;
254255
type SemanticPol = Semantic<String>;

src/policy/semantic.rs

-2
Original file line numberDiff line numberDiff line change
@@ -698,8 +698,6 @@ impl<Pk: MiniscriptKey> TreeLike for Arc<Policy<Pk>> {
698698

699699
#[cfg(test)]
700700
mod tests {
701-
use core::str::FromStr;
702-
703701
use bitcoin::PublicKey;
704702

705703
use super::*;

src/psbt/finalizer.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ use core::mem;
1212

1313
use bitcoin::hashes::hash160;
1414
use bitcoin::key::XOnlyPublicKey;
15-
use bitcoin::secp256k1::{self, Secp256k1};
15+
#[cfg(not(test))] // https://github.com/rust-lang/rust/issues/121684
16+
use bitcoin::secp256k1;
17+
use bitcoin::secp256k1::Secp256k1;
1618
use bitcoin::sighash::Prevouts;
1719
use bitcoin::taproot::LeafVersion;
1820
use bitcoin::{PublicKey, Script, ScriptBuf, TxOut, Witness};

src/psbt/mod.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ use std::error;
1414

1515
use bitcoin::hashes::{hash160, sha256d, Hash};
1616
use bitcoin::psbt::{self, Psbt};
17-
use bitcoin::secp256k1::{self, Secp256k1, VerifyOnly};
17+
#[cfg(not(test))] // https://github.com/rust-lang/rust/issues/121684
18+
use bitcoin::secp256k1;
19+
use bitcoin::secp256k1::{Secp256k1, VerifyOnly};
1820
use bitcoin::sighash::{self, SighashCache};
1921
use bitcoin::taproot::{self, ControlBlock, LeafVersion, TapLeafHash};
2022
use bitcoin::{absolute, bip32, transaction, Script, ScriptBuf, Sequence};
@@ -1403,7 +1405,7 @@ mod tests {
14031405
use bitcoin::hashes::hex::FromHex;
14041406
use bitcoin::key::XOnlyPublicKey;
14051407
use bitcoin::secp256k1::PublicKey;
1406-
use bitcoin::{absolute, Amount, OutPoint, TxIn, TxOut};
1408+
use bitcoin::{Amount, OutPoint, TxIn, TxOut};
14071409

14081410
use super::*;
14091411
use crate::Miniscript;

src/test_utils.rs

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use std::str::FromStr;
77

88
use bitcoin::hashes::{hash160, ripemd160, sha256};
99
use bitcoin::key::XOnlyPublicKey;
10+
#[cfg(not(test))] // https://github.com/rust-lang/rust/issues/121684
1011
use bitcoin::secp256k1;
1112

1213
use crate::miniscript::context::SigType;

0 commit comments

Comments
 (0)