Skip to content

Commit fbc3262

Browse files
committed
add a test for Miniscript::substitute_raw_pkh()
1 parent cab7762 commit fbc3262

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
@@ -1518,6 +1518,36 @@ mod tests {
15181518
}
15191519
Tapscript::parse_insane(&script.into_script()).unwrap_err();
15201520
}
1521+
1522+
#[test]
1523+
fn substitute_raw_pkh() {
1524+
type Segwitv0Script = Miniscript<bitcoin::PublicKey, Segwitv0>;
1525+
1526+
let script = hex_script("210322d0545db1071bbdf957e93894fb4f39920d36d5fb439ca1e95e838076da1937ac736476a9143a6393a63f1afbc481b0d3c1ae2a7b084acf001b88ad03ffff00b268");
1527+
assert_eq!(
1528+
&script.to_asm_string(),
1529+
"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"
1530+
);
1531+
1532+
let mut params = ExtParams::new();
1533+
params.raw_pkh = true;
1534+
let ms = Segwitv0Script::parse_with_ext(&script, &params).unwrap();
1535+
1536+
assert!(ms.contains_raw_pkh());
1537+
1538+
let hash = hash160::Hash::from_str("3a6393a63f1afbc481b0d3c1ae2a7b084acf001b").unwrap();
1539+
let dummy_key = bitcoin::PublicKey::from_str(
1540+
"0327a6ed0e71b451c79327aa9e4a6bb26ffb1c0056abc02c25e783f6096b79bb4f",
1541+
)
1542+
.unwrap();
1543+
1544+
let mut pk_map = BTreeMap::new();
1545+
pk_map.insert(hash, dummy_key);
1546+
1547+
let ms = ms.substitute_raw_pkh(&pk_map);
1548+
1549+
assert!(!ms.contains_raw_pkh());
1550+
}
15211551
}
15221552

15231553
#[cfg(bench)]

0 commit comments

Comments
 (0)