Skip to content

Commit 2c67f9a

Browse files
committed
Move Liftable to crate::abstract module
The `Liftable` trait is its own thing, it defines a trait to lift miniscript, descriptors, and concrete policies to an abstract policy. Move the `Liftable` and associated error type and impls to a new `lift` module that lives under the recently created `crate::r#abstract` module. Note we alse remove the `Semantic` and `Concrete` public re-names/re-exports from `crate::policy` because we are transitioning away from using the term "semantic", however to minimise the changes in this patch we add a bunch of `use crate::policy::concrete::Policy as Concrete` statements.
1 parent 3d36810 commit 2c67f9a

File tree

20 files changed

+570
-574
lines changed

20 files changed

+570
-574
lines changed

examples/htlc.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ use std::str::FromStr;
77

88
use miniscript::bitcoin::Network;
99
use miniscript::descriptor::Wsh;
10-
use miniscript::policy::{Concrete, Liftable};
10+
use miniscript::policy::concrete::Policy as Concrete;
11+
use miniscript::r#abstract::Liftable;
1112

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

examples/taproot.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use miniscript::bitcoin::key::{KeyPair, XOnlyPublicKey};
88
use miniscript::bitcoin::secp256k1::rand;
99
use miniscript::bitcoin::Network;
1010
use miniscript::descriptor::DescriptorType;
11-
use miniscript::policy::Concrete;
11+
use miniscript::policy::concrete::Policy as Concrete;
1212
use miniscript::{translate_hash_fail, Descriptor, Miniscript, Tap, TranslatePk, Translator};
1313

1414
// Refer to https://github.com/sanket1729/adv_btc_workshop/blob/master/workshop.md#creating-a-taproot-descriptor

fuzz/fuzz_targets/compile_descriptor.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
use std::str::FromStr;
22

33
use honggfuzz::fuzz;
4+
use miniscript::r#abstract::Liftable;
45
use miniscript::{policy, Miniscript, Segwitv0};
5-
use policy::Liftable;
66

77
type Script = Miniscript<String, Segwitv0>;
8-
type Policy = policy::Concrete<String>;
8+
type Policy = policy::concrete::Policy<String>;
99

1010
fn do_test(data: &[u8]) {
1111
let data_str = String::from_utf8_lossy(data);

fuzz/fuzz_targets/roundtrip_concrete.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use honggfuzz::fuzz;
44
use miniscript::policy;
55
use regex::Regex;
66

7-
type Policy = policy::Concrete<String>;
7+
type Policy = policy::concrete::Policy<String>;
88

99
fn do_test(data: &[u8]) {
1010
let data_str = String::from_utf8_lossy(data);

fuzz/fuzz_targets/roundtrip_semantic.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::str::FromStr;
33
use honggfuzz::fuzz;
44
use miniscript::policy;
55

6-
type Policy = policy::Semantic<String>;
6+
type Policy = policy::r#abstract::Policy<String>;
77

88
fn do_test(data: &[u8]) {
99
let data_str = String::from_utf8_lossy(data);

src/abstract/lift.rs

Lines changed: 528 additions & 0 deletions
Large diffs are not rendered by default.

src/abstract/mod.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// SPDX-License-Identifier: CC0-1.0
2+
3+
//! WIP - TODO: Describe this module.
4+
5+
pub use self::lift::{LiftError, Liftable};
6+
7+
mod lift;

src/descriptor/bare.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ use crate::expression::{self, FromTree};
1818
use crate::miniscript::context::{ScriptContext, ScriptContextError};
1919
use crate::miniscript::satisfy::{Placeholder, Satisfaction, Witness};
2020
use crate::plan::AssetProvider;
21-
use crate::policy::{r#abstract, Liftable};
21+
use crate::policy::r#abstract;
2222
use crate::prelude::*;
23+
use crate::r#abstract::Liftable;
2324
use crate::util::{varint_len, witness_to_scriptsig};
2425
use crate::{
2526
BareCtx, Error, ForEachKey, Miniscript, MiniscriptKey, Satisfier, ToPublicKey, TranslateErr,

src/descriptor/key.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1154,7 +1154,6 @@ mod test {
11541154
use serde_test::{assert_tokens, Token};
11551155

11561156
use super::*;
1157-
use crate::prelude::*;
11581157

11591158
#[test]
11601159
fn parse_descriptor_key_errors() {

src/descriptor/segwitv0.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@ use crate::expression::{self, FromTree};
1616
use crate::miniscript::context::{ScriptContext, ScriptContextError};
1717
use crate::miniscript::satisfy::{Placeholder, Satisfaction, Witness};
1818
use crate::plan::AssetProvider;
19-
use crate::policy::{r#abstract, Liftable};
19+
use crate::policy::r#abstract;
2020
use crate::prelude::*;
21+
use crate::r#abstract::Liftable;
2122
use crate::util::varint_len;
2223
use crate::{
2324
Error, ForEachKey, Miniscript, MiniscriptKey, Satisfier, Segwitv0, ToPublicKey, TranslateErr,

0 commit comments

Comments
 (0)