From 814ab4c855bcfc660dbe425c55bfbf61bd2bc448 Mon Sep 17 00:00:00 2001 From: Evgenii P Date: Sat, 3 Jul 2021 13:51:43 +0700 Subject: [PATCH 1/3] dsl: fix descriptor macro when and_or() used --- src/descriptor/dsl.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/descriptor/dsl.rs b/src/descriptor/dsl.rs index e5bd1de6..be78feb5 100644 --- a/src/descriptor/dsl.rs +++ b/src/descriptor/dsl.rs @@ -175,7 +175,7 @@ macro_rules! impl_node_opcode_two { #[doc(hidden)] #[macro_export] macro_rules! impl_node_opcode_three { - ( $terminal_variant:ident, $( $inner:tt )* ) => { + ( $terminal_variant:ident, $( $inner:tt )* ) => ({ use $crate::descriptor::CheckMiniscript; let inner = $crate::fragment_internal!( @t $( $inner )* ); @@ -201,7 +201,7 @@ macro_rules! impl_node_opcode_three { Ok((minisc, a_keymap, networks)) }) - }; + }); } #[doc(hidden)] From 928f9c6112d229d07c4140cf4c8192d9450583fa Mon Sep 17 00:00:00 2001 From: Evgenii P Date: Sat, 3 Jul 2021 13:52:05 +0700 Subject: [PATCH 2/3] dsl: add regression test for and_or() descriptor --- src/descriptor/dsl.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/descriptor/dsl.rs b/src/descriptor/dsl.rs index be78feb5..11cb6391 100644 --- a/src/descriptor/dsl.rs +++ b/src/descriptor/dsl.rs @@ -790,6 +790,25 @@ mod test { ); } + #[test] + fn test_fixed_threeop_descriptors() { + let redeem_key = bitcoin::PublicKey::from_str( + "03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd", + ) + .unwrap(); + let move_key = bitcoin::PublicKey::from_str( + "032e58afe51f9ed8ad3cc7897f634d881fdbe49a81564629ded8156bebd2ffd1af", + ) + .unwrap(); + + check( + descriptor!(sh(wsh(and_or(pk(redeem_key), older(1000), pk(move_key))))), + true, + true, + &["2MypGwr5eQWAWWJtiJgUEToVxc4zuokjQRe"], + ); + } + #[test] fn test_bip32_legacy_descriptors() { let xprv = bip32::ExtendedPrivKey::from_str("tprv8ZgxMBicQKsPcx5nBGsR63Pe8KnRUqmbJNENAfGftF3yuXoMMoVJJcYeUw5eVkm9WBPjWYt6HMWYJNesB5HaNVBaFc1M6dRjWSYnmewUMYy").unwrap(); From 879e5cf3193f896082dda5d25ebf1836a252e7e6 Mon Sep 17 00:00:00 2001 From: Evgenii P Date: Sat, 3 Jul 2021 14:08:38 +0700 Subject: [PATCH 3/3] rustfmt --- src/descriptor/dsl.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/descriptor/dsl.rs b/src/descriptor/dsl.rs index 11cb6391..76eb4ecd 100644 --- a/src/descriptor/dsl.rs +++ b/src/descriptor/dsl.rs @@ -795,11 +795,11 @@ mod test { let redeem_key = bitcoin::PublicKey::from_str( "03a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd", ) - .unwrap(); + .unwrap(); let move_key = bitcoin::PublicKey::from_str( "032e58afe51f9ed8ad3cc7897f634d881fdbe49a81564629ded8156bebd2ffd1af", ) - .unwrap(); + .unwrap(); check( descriptor!(sh(wsh(and_or(pk(redeem_key), older(1000), pk(move_key))))),