Skip to content

Commit 939ea90

Browse files
authored
Merge pull request #213 from sanket1729/descriptor_overhual
Descriptor struct overhaul
2 parents fea9455 + f8a9478 commit 939ea90

File tree

15 files changed

+1875
-811
lines changed

15 files changed

+1875
-811
lines changed

examples/htlc.rs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ extern crate miniscript;
1919

2020
use bitcoin::Network;
2121
use miniscript::policy::{Concrete, Liftable};
22-
use miniscript::Descriptor;
2322
use miniscript::NullCtx;
23+
use miniscript::{Descriptor, DescriptorTrait};
2424
use std::str::FromStr;
2525

2626
fn main() {
@@ -32,7 +32,12 @@ fn main() {
3232
expiry = "4444"
3333
)).unwrap();
3434

35-
let htlc_descriptor = Descriptor::Wsh(htlc_policy.compile().unwrap());
35+
let htlc_descriptor = Descriptor::new_wsh(
36+
htlc_policy
37+
.compile()
38+
.expect("Policy compilation only fails on resource limits or mixed timelocks"),
39+
)
40+
.expect("Resource limits");
3641

3742
// Check whether the descriptor is safe
3843
// This checks whether all spend paths are accessible in bitcoin network.
@@ -55,14 +60,14 @@ fn main() {
5560
);
5661

5762
assert_eq!(
58-
format!("{:x}", htlc_descriptor.witness_script(NullCtx)),
63+
format!("{:x}", htlc_descriptor.explicit_script(NullCtx)),
5964
"21022222222222222222222222222222222222222222222222222222222222222222ac6476a91451814f108670aced2d77c1805ddd6634bc9d473188ad025c11b26782012088a82011111111111111111111111111111111111111111111111111111111111111118768"
6065
);
6166

6267
assert_eq!(
6368
format!(
6469
"{}",
65-
htlc_descriptor.address(Network::Bitcoin, NullCtx).unwrap()
70+
htlc_descriptor.address(NullCtx, Network::Bitcoin).unwrap()
6671
),
6772
"bc1qmpfcw7he9z5d9ftfe8qw699azmm2sr8fen903fs4plv007yx0t3qxfmqv5"
6873
);

examples/parse.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
extern crate bitcoin;
1818
extern crate miniscript;
1919

20-
use miniscript::NullCtx;
20+
use miniscript::{DescriptorTrait, NullCtx};
2121
use std::str::FromStr;
2222

2323
fn main() {
@@ -42,7 +42,7 @@ fn main() {
4242
);
4343

4444
assert_eq!(
45-
format!("{:x}", my_descriptor.witness_script(NullCtx)),
45+
format!("{:x}", my_descriptor.explicit_script(NullCtx)),
4646
"21020202020202020202020202020202020202020202020202020202020202020202ac"
4747
);
4848
}

examples/sign_multisig.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ extern crate bitcoin;
1818
extern crate miniscript;
1919

2020
use bitcoin::secp256k1; // secp256k1 re-exported from rust-bitcoin
21-
use miniscript::NullCtx;
21+
use miniscript::{DescriptorTrait, NullCtx};
2222
use std::collections::HashMap;
2323
use std::str::FromStr;
2424

@@ -100,7 +100,7 @@ fn main() {
100100
);
101101

102102
assert_eq!(
103-
format!("{:x}", my_descriptor.witness_script(NullCtx)),
103+
format!("{:x}", my_descriptor.explicit_script(NullCtx)),
104104
"52\
105105
21020202020202020202020202020202020202020202020202020202020202020202\
106106
21020102030405060708010203040506070801020304050607080000000000000000\

examples/xpub_descriptors.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
extern crate miniscript;
1818

1919
use miniscript::bitcoin::{self, secp256k1};
20-
use miniscript::{Descriptor, DescriptorPublicKey, DescriptorPublicKeyCtx};
20+
use miniscript::{Descriptor, DescriptorPublicKey, DescriptorPublicKeyCtx, DescriptorTrait};
2121

2222
use bitcoin::util::bip32;
2323

@@ -34,13 +34,13 @@ fn main() {
3434
"wsh(sortedmulti(1,xpub661MyMwAqRbcFW31YEwpkMuc5THy2PSt5bDMsktWQcFF8syAmRUapSCGu8ED9W6oDMSgv6Zz8idoc4a6mr8BDzTJY47LJhkJ8UB7WEGuduB,xpub69H7F5d8KSRgmmdJg2KhpAK8SR3DjMwAdkxj3ZuxV27CprR9LgpeyGmXUbC6wb7ERfvrnKZjXoUmmDznezpbZb7ap6r1D3tgFxHmwMkQTPH))",
3535
)
3636
.unwrap()
37-
.address(bitcoin::Network::Bitcoin, desc_ctx).unwrap();
37+
.address(desc_ctx, bitcoin::Network::Bitcoin).unwrap();
3838

3939
let addr_two = Descriptor::<DescriptorPublicKey>::from_str(
4040
"wsh(sortedmulti(1,xpub69H7F5d8KSRgmmdJg2KhpAK8SR3DjMwAdkxj3ZuxV27CprR9LgpeyGmXUbC6wb7ERfvrnKZjXoUmmDznezpbZb7ap6r1D3tgFxHmwMkQTPH,xpub661MyMwAqRbcFW31YEwpkMuc5THy2PSt5bDMsktWQcFF8syAmRUapSCGu8ED9W6oDMSgv6Zz8idoc4a6mr8BDzTJY47LJhkJ8UB7WEGuduB))",
4141
)
4242
.unwrap()
43-
.address(bitcoin::Network::Bitcoin, desc_ctx).unwrap();
43+
.address(desc_ctx, bitcoin::Network::Bitcoin).unwrap();
4444
let expected = bitcoin::Address::from_str(
4545
"bc1qpq2cfgz5lktxzr5zqv7nrzz46hsvq3492ump9pz8rzcl8wqtwqcspx5y6a",
4646
)
@@ -54,14 +54,14 @@ fn main() {
5454
)
5555
.unwrap()
5656
.derive(bitcoin::util::bip32::ChildNumber::from_normal_idx(5).unwrap())
57-
.address(bitcoin::Network::Bitcoin, desc_ctx).unwrap();
57+
.address(desc_ctx, bitcoin::Network::Bitcoin).unwrap();
5858

5959
let addr_two = Descriptor::<DescriptorPublicKey>::from_str(
6060
"sh(wsh(sortedmulti(1,xpub69H7F5d8KSRgmmdJg2KhpAK8SR3DjMwAdkxj3ZuxV27CprR9LgpeyGmXUbC6wb7ERfvrnKZjXoUmmDznezpbZb7ap6r1D3tgFxHmwMkQTPH/0/0/*,xpub661MyMwAqRbcFW31YEwpkMuc5THy2PSt5bDMsktWQcFF8syAmRUapSCGu8ED9W6oDMSgv6Zz8idoc4a6mr8BDzTJY47LJhkJ8UB7WEGuduB/1/0/*)))",
6161
)
6262
.unwrap()
6363
.derive(bitcoin::util::bip32::ChildNumber::from_normal_idx(5).unwrap())
64-
.address(bitcoin::Network::Bitcoin, desc_ctx).unwrap();
64+
.address(desc_ctx, bitcoin::Network::Bitcoin).unwrap();
6565
let expected = bitcoin::Address::from_str("325zcVBN5o2eqqqtGwPjmtDd8dJRyYP82s").unwrap();
6666
assert_eq!(addr_one, expected);
6767
assert_eq!(addr_two, expected);

0 commit comments

Comments
 (0)