Skip to content

Commit 6ebf973

Browse files
committed
miniscript: add a test for substitute_raw_pkh()
1 parent 8e2d90c commit 6ebf973

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

src/miniscript/mod.rs

+30
Original file line numberDiff line numberDiff line change
@@ -1636,6 +1636,36 @@ mod tests {
16361636
}
16371637
Tapscript::parse_insane(&script.into_script()).unwrap_err();
16381638
}
1639+
1640+
#[test]
1641+
fn substitute_raw_pkh() {
1642+
type Segwitv0Script = Miniscript<bitcoin::PublicKey, Segwitv0>;
1643+
1644+
let script = hex_script("210322d0545db1071bbdf957e93894fb4f39920d36d5fb439ca1e95e838076da1937ac736476a9143a6393a63f1afbc481b0d3c1ae2a7b084acf001b88ad03ffff00b268");
1645+
assert_eq!(
1646+
&script.to_asm_string(),
1647+
"OP_PUSHBYTES_33 0322d0545db1071bbdf957e93894fb4f39920d36d5fb439ca1e95e838076da1937 OP_CHECKSIG OP_IFDUP OP_NOTIF OP_DUP OP_HASH160 OP_PUSHBYTES_20 3a6393a63f1afbc481b0d3c1ae2a7b084acf001b OP_EQUALVERIFY OP_CHECKSIGVERIFY OP_PUSHBYTES_3 ffff00 OP_CSV OP_ENDIF"
1648+
);
1649+
1650+
let mut params = ExtParams::new();
1651+
params.raw_pkh = true;
1652+
let ms = Segwitv0Script::parse_with_ext(&script, &params).unwrap();
1653+
1654+
assert!(ms.contains_raw_pkh());
1655+
1656+
let hash = hash160::Hash::from_str("3a6393a63f1afbc481b0d3c1ae2a7b084acf001b").unwrap();
1657+
let dummy_key = bitcoin::PublicKey::from_str(
1658+
"0327a6ed0e71b451c79327aa9e4a6bb26ffb1c0056abc02c25e783f6096b79bb4f",
1659+
)
1660+
.unwrap();
1661+
1662+
let mut pk_map = BTreeMap::new();
1663+
pk_map.insert(hash, dummy_key);
1664+
1665+
let ms = ms.substitute_raw_pkh(&pk_map);
1666+
1667+
assert!(!ms.contains_raw_pkh());
1668+
}
16391669
}
16401670

16411671
#[cfg(bench)]

0 commit comments

Comments
 (0)